Javascript 覆盖设置间隔
我过去认为,如果我创建一个变量,我可以简单地覆盖它们。 我正在努力做到以下几点:Javascript 覆盖设置间隔,javascript,jquery,setinterval,Javascript,Jquery,Setinterval,我过去认为,如果我创建一个变量,我可以简单地覆盖它们。 我正在努力做到以下几点: var zoom = { $el : $('#Overlay'), nextTimer : null, activeDetail : -1, zo: null, init: function() { zoom.nextTimer = setInterval(zoom.nextLoop, 5000); }, nextLoop: function()
var zoom = {
$el : $('#Overlay'),
nextTimer : null,
activeDetail : -1,
zo: null,
init: function() {
zoom.nextTimer = setInterval(zoom.nextLoop, 5000);
},
nextLoop: function() {
console.log("zoom.nextLoop");
}
}
$(document).on('click', function(e){
console.log("klick");
zoom.init();
});
并预期zoom.nextimer将被覆盖。但它似乎是错误的,一个新的计时器被添加。
如何覆盖它
另请参见
intervalID是可以传递给clearInterval()的唯一间隔ID
-
setInterval
的返回值只是一个标识间隔的数字。如果要停止间隔再次运行函数,需要调用clearInterval
,并将其作为参数传递
var nextTimer = setInterval(func, time);
clearInterval(nextTimer);
您需要调用
clearInterval()
,以确保它不会再次执行
您可能会更幸运地使用setTimout
,它只会被调用一次。“并期望zoom.nextTimer将被覆盖”:这确实发生了,但该值只是计时器的ID。前一个计时器将继续在后台运行。有关更多信息,请参阅MDN文档:。