我有一段最初开始间隔的代码。然后按下一个按钮,我希望停止/清除该间隔,等待X秒,然后再次开始间隔。
此代码启动间隔并正常工作:
var timeout = undefined;
var interval = setInterval(bgScroll, timeBetweenSwap);
然后我希望在单击按钮时停止间隔,让它等待X秒并再次启动(当然再次按下该按钮应重置该秒数)
$(document).on('click', '.bgscroller a', function(){
clearInterval(interval);
clearTimeout(timeout);
var timeout = setTimeout(function(){
var interval = setInterval(bgScroll, timeBetweenSwap);
}, delayAfterClick);
});
现在当我点击按钮几次时间间隔变得疯狂并且堆积起来。我建议将其清除......任何建议哦我应该如何解决这个问题?
亲切的问候, 纳拉
答案 0 :(得分:2)
简而言之,删除最后两个var
语句。设为timeout =
和interval =
,而不是var timeout =
和var interval =
。
您的代码非常接近 - 看起来您在最后几行timeout
和interval
变量shadowing。
这有点不对:
var timeout = setTimeout(function(){
var interval = setInterval(bgScroll, timeBetweenSwap);
}, delayAfterClick);
应该看起来像这样(非常相似):
timeout = setTimeout(function(){
interval = setInterval(bgScroll, timeBetweenSwap);
}, delayAfterClick);
请注意,我们删除了var
语句。这使用与上面相同的timeout
和interval
变量,而不是使新变量碰巧具有相同的名称。