0

以前は、変数を作成すれば簡単に上書きできると思っていました。私は次のことをしようとしています:

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/も参照してください。

4

2 に答える 2

2

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-06T10:12:04.607 に答える
0

clearInterval(<reference to the timer>)再度実行されないように呼び出す必要があります。

setTimoutまた、一度だけ呼び出される運が良いかもしれません。

于 2013-06-06T10:12:26.290 に答える