2013-05-13 4 views
1

Я написал функцию, содержащую оператор if, и условие содержит переменную.Цитирование через несколько переменных в функции

function interval() { 
     var interval = setInterval(function() { 
      if (x < max) { 
       x = parseInt(x) + 1; 
       $('.max').html(addCommas(x)); 
      } 
     }, 1); 
    }; 

Так вот Макс моя переменная. Отлично работает, но теперь у меня есть еще три переменные, и я хочу запускать одну и ту же функцию, но с разными переменными каждый раз. Я мог бы копировать функцию еще 3 раза и редактировать переменную в каждом, но это делает меня очень неэффективным.

Что было бы лучшим способом достичь этого?

+1

Есть ли причина не использовать цикл 'for' или' while'? 'setInterval' кажется неправильным решением здесь – yoavmatchulsky

+0

Почему _parseInt (x) _ - и если x не может быть числом, вы не должны разбирать _before_, сравнивая его с max? – nnnnnn

ответ

1

Pass макс в качестве аргумента функции

function interval(max){ 
    var x = 0; //always declare variables 
    var interval = setInterval(function(){ 
    if (x < max){ 
     x = parseInt(x) + 1; 

     $('.max').html(addCommas(x)); 
     } 
    }, 1); 
}; 

Я не уверен, драйвера для ввода этого кода в интервале. Вы можете рассмотреть возможность использования цикла for:

function interval(max){ 
    for(var x = 0; x < max; x++){ 
     $(".max").html(addCommas(x)); 
    }   
}; 
+0

Спасибо, Кевин. Это анимированный счетчик, поэтому он находится в промежутке. Я не уверен, как добавить переменную в аргумент функции, помогая мне? – AfricanMatt

+0

@ user1635375 - Интервальная задержка 1 является излишним для анимации. Браузер фактически не будет идти так быстро (большинство, если не все, округлят его до 4 или 5). – nnnnnn

+0

@ user1635375 Предполагаю, что вы хотите запустить функцию для разных максимальных значений, добавьте одну из других функций, которые вы создадите для вопроса. –

0

Используйте параметры в функции и используйте ту же функцию.

function interval(vfield){ 
    var interval = setInterval(function(){ 
    if (x < vfield){ 
     x = parseInt(x) + 1; 

     $('.max').html(addCommas(x)); 
     } 
    }, 1); 
}; 

Где vfield - ваша переменная.

Смежные вопросы