在这里,变量计时器在timerIncrement
函数外部声明。由于变量范围的原因,我知道在函数内部更改值不会在外部更改它。但是,我确实需要提出这样的建议,以便idleTime > 5
使用新的计时器。
我该如何实现?
jQuery(document).ready(function($) {
var timer = 1000;
// //increment the idle time counter every sec.
var idleInterval = setInterval(timerIncrement, timer); // 1 sec
function timerIncrement() {
while(idleTime < 5){
console.log('test '+idleTime);
idleTime = idleTime + 1;
}
timer = 2000;//how to make this take affect on the top so that setInterval run at this newly set timer
console.log('reached max');
}
}
最佳答案
由于间隔是在首次调用setInterval
时设置的。修改delay
的值将无效。
在这种情况下,您应该使用setTimeout
。
$(document).ready(function() {
var timer = 1000;
var idleInterval = setTimeout(timerIncrement, timer); // 1 sec
function timerIncrement() {
timer = 2000
//Recursively call your method
idleInterval = setTimeout(timerIncrement, timer);
}
});