0

我有一个这样的功能设置:

setInterval(function () { get_fb(); }, 10000);

每当用户执行某些操作(例如将鼠标悬停在元素上或单击元素)时,我想将计时器重置为 10 秒

我将如何告诉程序做这样的事情?

4

3 回答 3

8

您是否将计时器分配给一个变量,您可以清除它并像这样重新启动它:

var timer = setInterval(get_fb, 10000);

$('#foo').click(function() {
    clearInterval(timer); // stop timer

    // do something...

    timer = setInterval(get_fb, 10000); // restart timer
});
于 2013-01-30T19:39:13.833 回答
2
 var timeout = setInterval(function () { get_fb(); }, 10000);


 //to reset interval, first clear it
 clearInterval(timeout);
 //then re-create
 timeout = setInterval(function () { get_fb(); }, 10000); 
于 2013-01-30T19:39:30.430 回答
1

在事件回调中,清除间隔,然后重新设置间隔:

interval = setInterval(...);
...elsewhere...
$(..selector..).click(function () {
    clearInterval(interval);
    interval = setInterval(...);
});

确保interval在点击回调的范围内可以访问。

于 2013-01-30T19:40:27.653 回答