我在这里有这个基本的jquery脚本:
var delay = 200;
setInterval(function(){
countup += 1;
if(countup >= 50) {
console.log('SSS');
console.log(delay);
delay = 10000; //Set the delay slower
}
console.log(countup);
},delay);
它确实将延迟设置为10000,但它不会更新interVal,它只是在200 ms运行..任何人都知道该怎么做?
答案 0 :(得分:3)
如果您想要动态超时,请使用setTimeout而不是setInterval。
var delay = 200;
function myInterval(){
countup += 1;
if(countup >= 50) {
console.log('SSS');
console.log(delay);
delay = 10000; //Set the delay slower
}
setTimeout(myInterval, delay);
console.log(countup);
}
setTimeout(myInterval ,delay);
答案 1 :(得分:1)
您需要清除间隔并重置它。
var delay = 200,
slowDelay = 10000,
countup = 0,
interval;
function action(){
countup += 1;
if(countup >= 50) {
console.log('SSS');
console.log(delay);
clearInterval(interval);
setInterval(action,slowDelay );
}
console.log(countup);
}
setInterval(action,delay);
答案 2 :(得分:0)
您无法更改setInterval
间隔的延迟,但您可以使用setTimeout
代替使用更改延迟重复设置超时:
var delay = 200;
setTimeout(function f(){
countup += 1;
if(countup >= 50) {
console.log('SSS');
console.log(delay);
delay = 10000;
}
console.log(countup);
setTimeout(f, delay);
},delay);