我正在使用这样setIntervals
的each()
函数
$(".elements").each(function() { setInterval(function() { }, 1000); });
显然,为每个元素创建了一个setIntervals.
我的问题是:当我不再需要它时,如何清除所有setIntervals?我已经尝试将setInterval存储在一个变量和调用中window.clearInterval(int)
,但是只清除了最后一个setInterval,因为每个变量都被覆盖了.
设置间隔时,会得到一个指向它的指针:
var myInterval = setInterval(function(){}, 4000);
如果要取消间隔,请执行以下操作:
clearInterval(myInterval);
因此,对于您想要做的事情,您将执行以下操作:
var intervals = []; $(".elements").each(function() { var i = setInterval(function() { }, 1000); intervals.push(i); });
然后,如果你需要取消它们,你可以这样做:
intervals.forEach(clearInterval);
那应该为你做.