我有这个代码,我无法弄清楚如何启动在scrollTop中清除的计时器,当滚动时,我尝试使用
$("#chat").scroll(function(){
var tim = setInterval(function(){
refreshChat();
},4000);
但没有用,有办法解决吗? 这是我在scrollTop上清除超时的完整工作代码:
var tim = setInterval(function(){
refreshChat();
},5000);
$("#chat").scrollTop(function(){
clearTimeout(tim);
});
答案 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
不支持将函数传递给它(如果它是的,它可能就像val
和text
一样,它用于设置值,而不是响应事件。)