在Javascript中清除后启动计时器

时间:2016-01-25 11:19:44

标签: javascript jquery javascript-events

我有这个代码,我无法弄清楚如何启动在scrollTop中清除的计时器,当滚动时,我尝试使用

$("#chat").scroll(function(){
    var tim = setInterval(function(){
    refreshChat();
},4000);

但没有用,有办法解决吗? 这是我在scrollTop上清除超时的完整工作代码:

var tim = setInterval(function(){
    refreshChat();
},5000);
$("#chat").scrollTop(function(){
    clearTimeout(tim);
});

1 个答案:

答案 0 :(得分:1)

您无法重启间隔计时器;一旦它被清除,它就被清除了。您必须启动间隔计时器。

所以

var refreshTimer = 0; // 0 is an invalid handle, useful initial value
function startRefreshTimer() {
    if (!refreshTimer) {
        refreshTimer = setInterval(refreshChat, 4000);
    }
}
function stopRefreshTimer() {
    clearInterval(refreshTimer);
    refreshTimer = 0;
}

您需要停止它的任何地方,请致电stopRefreshTimer。您需要启动它的任何地方,请致电startRefreshTimer

我没有按照您的方式清除计时器(在传递给scrollTop的函数中)因为scrollTop不支持将函数传递给它(如果它是的,它可能就像valtext一样,它用于设置值,而不是响应事件。)