Jquery 如何在函数内部更新变量值以对顶级变量生效
这里,变量计时器在Jquery 如何在函数内部更新变量值以对顶级变量生效,jquery,scope,Jquery,Scope,这里,变量计时器在timerIncrement函数之外声明。由于作用域可变,我知道更改函数内部的值不会更改函数外部的值。但是我真的需要想出这样的方法,一旦idleTime>5它就会使用新的计时器 我怎样才能做到这一点 jQuery(document).ready(function($) { var timer = 1000; // //increment the idle time counter every sec. var idleInterval = setInterv
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');
}
}
jQuery(文档).ready(函数($){
无功定时器=1000;
////每秒钟递增一次空闲时间计数器。
var idleInterval=setInterval(timerIncrement,timer);//1秒
函数timerIncrement(){
while(空闲时间<5){
console.log('test'+idleTime);
空闲时间=空闲时间+1;
}
timer=2000;//如何使其在顶部生效,以便setInterval在新设置的计时器上运行
console.log(“达到最大值”);
}
}
因为interval是在首次调用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);
}
});
这应该起作用:
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
clearInterval(idleInterval);
idleInterval = setInterval(timerIncrement, timer);
console.log('reached max');
}
函数timerIncrement(){
while(空闲时间<5){
console.log('test'+idleTime);
空闲时间=空闲时间+1;
}
timer=2000;//如何使其在顶部生效,以便setInterval在新设置的计时器上运行
clearInterval(idleInterval);
idleInterval=设置间隔(timerIncrement,timer);
console.log(“达到最大值”);
}