覆盖setInterval

时间:2013-06-06 10:10:18

标签: javascript jquery setinterval

我认为,如果我创建一个变量,我可以简单地覆盖它们。 我试图做以下事情:

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/

2 个答案:

答案 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只能被召唤一次。

相关问题