在过去,我认为如果我创建一个变量,我可以简单地覆盖它们。我正在尝试做以下几件事:
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将被覆盖。但这似乎是错的,添加了一个新的计时器。我怎么覆盖它呢?
另请参阅http://jsfiddle.net/9FXu6/
发布于 2013-06-06 18:12:05
intervalID是可以传递给clearInterval()的唯一间隔ID。
- https://developer.mozilla.org/en-US/docs/Web/API/window.setInterval
setInterval的返回值只是一个标识间隔的数字。如果您想要停止间隔再次运行函数,则需要调用clearInterval并将其作为参数传递。
var nextTimer = setInterval(func, time);
clearInterval(nextTimer);发布于 2013-06-06 18:12:26
您需要调用clearInterval(<reference to the timer>)以确保它不会再次被执行。
你也可能更幸运的使用setTimout,它只被调用一次。
https://stackoverflow.com/questions/16959363
复制相似问题