Подтвердить что ты не робот

Несколько счетчиков в цикле Javascript для цикла

Прежде чем я вырву свои волосы и спустимся по неправильному пути с точки зрения отладки. Может кто-то подтвердить, что этот код будет действовать по назначению. То есть. оживить 5 разделов на разные позиции:

var i, j, k;
$('#menuButton').click(function(){
    for (i=1; j=0; k=150; i<=5; i++; j+=30; k-=30){
        $('.spinner #item' + i).animate({
            left: '+=' + j,
            bottom: '+=' + k
          }, 500, function() {
            // Animation complete.
        });
    }
});

Когда я нажимаю кнопку #menuButton, ничего не происходит, и я получаю эту ошибку:

Неактивный SyntaxError: Неожиданный токен; на строке "for()"...

4b9b3361

Ответ 1

У вас есть точки с запятой, где вы хотите запятые:

for (i=1, j=0, k=150; i<=5; i++, j+=30, k-=30) { /* do work */ }

У вас должно быть только три "утверждения" внутри вашего for

for( [init]; [test]; [increments]) { [block] }

Чтобы выполнить несколько [inits] или [increments], вы должны использовать иногда магический, но забытый, запятый оператор

Ответ 2

слишком много точек с запятой

for (i=1; j=0; k=150; i<=5; i++; j+=30; k-=30){

должен быть

for (i=1, j=0, k=150; i<=5; i++, j+=30, k-=30){

Ответ 3

Вы допустили грамматические ошибки в своем коде, которые вы могли бы легко заметить, если бы использовали инструменты статического анализа кода, такие как прекрасный JSHint.

Кроме того, вы должны лучше понимать использование оператора запятой в JavaScript, наш сайт уже имеет несколько ответов на него.