我正在做一个项目,在这个项目中我动态生成许多 setInterval
,因此不可能将它们的引用存储在变量中以便它可以用于 清除间隔
。
只是想问问你们是否有人知道如何在具有 Id 的特定 div 上 clearInterval
。
在我的项目中,当应该清除 setInterval
时,我也会从文档正文中删除该元素。因此,当再次调用 setInterval
时,我可以设置一个条件来检查具有该特定 id 的元素是否存在,然后我才能执行 setInterval
代码。
像这样,
if(document.getElementById("char0") != null)
{
// execute the setInterval code.
}
但这种方法仍然会占用 CPU 时间。我正在动态生成大约 150 个 setInterval,无法为它们创建变量引用。如果您对如何实现这一目标有任何线索,请提供帮助。
最佳答案
尝试将区间变量存储在闭包中:
var createInterval = function(elementId){
var interval;
interval = setInterval(function(){
if(document.getElementById(elementId) == null){
clearInterval(interval);
}else{
//Your code
}
},1000);
};
因此,您可以创建任意数量的间隔,并在这些 DOM 元素消失后将其删除。
createInterval('element1');
createInterval('element2');
createInterval('element3');
但正如@alexander-omara 所说,就 CPU 使用率而言,仅使用很少的间隔来更新所有元素是更好的解决方案。
关于javascript - 当前元素上的 clearInterval,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20917086/