我认为,如果我创建一个变量,我可以简单地覆盖它们。 我试图做以下事情:
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.nextTimer。但似乎错了,增加了一个新的计时器。 我怎么能覆盖它?
答案 0 :(得分:2)
intervalID是您可以传递给clearInterval()的唯一间隔ID。
- https://developer.mozilla.org/en-US/docs/Web/API/window.setInterval
setInterval
的返回值只是一个标识间隔的数字。如果要停止再次运行该函数的间隔,则需要调用clearInterval
并将其作为参数传递。
var nextTimer = setInterval(func, time);
clearInterval(nextTimer);
答案 1 :(得分:0)
您需要致电clearInterval(<reference to the timer>)
以确保它不会再次执行。
你可能还有更多的运气setTimout
只能被召唤一次。