通过超时开始间隔
Start interval through timeout
我有这段代码最初开始一个间隔。然后按一下按钮,我希望该间隔为 stopped/cleared,等待 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);
});
现在,当我点击按钮几次时,间隔变得疯狂并堆积起来。我建议将其清除...任何建议哦,我应该如何解决这个问题?
亲切的问候,
纳拉扬
简而言之,删除最后两个 var
语句。使其成为 timeout =
和 interval =
而不是 var timeout =
和 var interval =
.
您的代码非常接近——看起来您是 shadowing 最后几行的 timeout
和 interval
变量。
这是错误的地方:
var timeout = setTimeout(function(){
var interval = setInterval(bgScroll, timeBetweenSwap);
}, delayAfterClick);
应该是这样的(非常相似):
timeout = setTimeout(function(){
interval = setInterval(bgScroll, timeBetweenSwap);
}, delayAfterClick);
请注意,我们删除了 var
语句。这使用与上面相同的 timeout
和 interval
变量,而不是创建恰好具有相同名称的新变量。
我有这段代码最初开始一个间隔。然后按一下按钮,我希望该间隔为 stopped/cleared,等待 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);
});
现在,当我点击按钮几次时,间隔变得疯狂并堆积起来。我建议将其清除...任何建议哦,我应该如何解决这个问题?
亲切的问候, 纳拉扬
简而言之,删除最后两个 var
语句。使其成为 timeout =
和 interval =
而不是 var timeout =
和 var interval =
.
您的代码非常接近——看起来您是 shadowing 最后几行的 timeout
和 interval
变量。
这是错误的地方:
var timeout = setTimeout(function(){
var interval = setInterval(bgScroll, timeBetweenSwap);
}, delayAfterClick);
应该是这样的(非常相似):
timeout = setTimeout(function(){
interval = setInterval(bgScroll, timeBetweenSwap);
}, delayAfterClick);
请注意,我们删除了 var
语句。这使用与上面相同的 timeout
和 interval
变量,而不是创建恰好具有相同名称的新变量。