gpt4 book ai didi

javascript - 将 setIntervals 与 .each() 元素链接起来

转载 作者:太空宇宙 更新时间:2023-11-04 16:12:27 24 4
gpt4 key购买 nike

这个问题与这个问题相关Clear all setIntervals

我像这样在每个函数中使用 setIntervals,

var allIntervals = [];
$(".elements").each(function() {
var myInterval = setInterval(function() {
// code that changes $(this)
});
allIntervals.push(myInterval);
});

然后我像这样清除所有间隔

jQuery.each(allIntervals, function(index) {
window.clearInterval(allIntervals[index]);
});

我现在意识到,我想改为清除 DOM 中不再存在的元素区间。

那么如何将 setIntervals 链接到 each() 元素,然后检查该元素是否仍在 DOM 中,如果不在,则清除与该元素关联的 Interval?

最佳答案

您可以将具有超时 ID 的元素存储在一个对象中,但是您必须再次检查它是否在 DOM 中,因为存储的元素不会神奇地从变量中消失,它只是不再在DOM.

var allIntervals = [];

$(".elements").each(function(i, el) {
var myInterval = setInterval(function() {
// stuff
}, 1000);
allIntervals.push({id : myInterval, elem : this});
});


$.each(allIntervals, function(index, item) {
if ( $(document).find(item.elem).length === 0 ) window.clearInterval(item.id);
});

FIDDLE

关于javascript - 将 setIntervals 与 .each() 元素链接起来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34256393/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com