javascript - 当前元素上的 clearInterval

标签 javascript

我正在做一个项目,在这个项目中我动态生成许多 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/

相关文章:

javascript - `function (n) { .. }(jQuery)`是什么意思?

javascript - 数组在 Chrome 控制台上有长度,但在调用 .length 时没有长度

javascript - 传递参数时事件监听器过早触发

javascript - 单击链接时关闭导航覆盖(一个寻呼机)

php - 验证 HTML、PHP 和 JavaScript 中的表单

javascript - 如何使用Ajax注册成功后登录用户?拉拉维尔 5.4

javascript - 从网站调用事件 - 使用 VBA 到 Internet Explorer

javascript - 当绘制完成并将新多边形添加到 openlayers 3 中的要素列表时触发事件

javascript - 我的 Provider 组件中的语法错误是什么?

javascript - 检测网页中重复的 javascript 函数名称的工具?