为什么这个简单的JavaScript代码不起作用?

时间:2014-10-26 06:35:38

标签: javascript setinterval

var interval = 250
setInterval(function(){
if ( 1==1 ) {
interval = 5000
}
}, interval)

如果1 == 1,则应将间隔设置为5000,但它会将间隔保持为250。

4 个答案:

答案 0 :(得分:3)

因为在这种情况下interval只评估一次,所以调用setInterval函数时(注意与setInterval 参数函数的区别,这将被调用重复地)。

要在第一次运行后更改间隔,您可以改为使用setTimeout,例如:

setTimeout(function() {
  (function _t() {
    // doSomethingUseful(); 
    setTimeout(_t, 5000);
  })();
}, 250);

答案 1 :(得分:1)

如果不重新调用setInterval,则无法更改间隔。我会使用某种setTimeout循环。

答案 2 :(得分:1)

执行回调函数时,使用250作为参数调用setInterval,当您更改函数中的间隔值时,此更改不会影响先前设置的值。

答案 3 :(得分:0)

setInterval将每250 MS调用一次回调,但setInterval本身将被调用一次