如何为setInterval创建动态变量?

发布于 2025-01-11 09:11:40 字数 597 浏览 0 评论 0原文

我使用节点和 ejs 创建一个 hmtl 页面,其中包含不可预见的元素数量。我想为一些、没有或全部这些元素创建一个 setInterval,具体取决于用户正在做什么。

问题是,我无法为 setInterval 创建动态变量,以便稍后可以取消这些间隔。

也许我只需要另一种更简单的方法,但目前我被困在这里。

camContainer.forEach(element => {
        clearInterval(intervalVar);
        if (!element.classList.contains("hidden")) {
            countVisible++;
            intervalVar = setInterval(showConsole, 1500);
        } else {
            countHidden ++;
        }
    count++;    
    })

我用数组而不是常规变量尝试过,但这也不起作用

intervalVar[count] = setInterval(showConsole, 1500);

I create a hmtl page with node and ejs with an unforseeable number of elements. I would like to create a setInterval for some, none or all of those elements, depending what the user is doing.

The problem is, that I am not able to create a dynamically variable for the setInterval so that I can later on cancel those Intervals.

Maybe I just need another simpler approach but at the moment I am stuck here.

camContainer.forEach(element => {
        clearInterval(intervalVar);
        if (!element.classList.contains("hidden")) {
            countVisible++;
            intervalVar = setInterval(showConsole, 1500);
        } else {
            countHidden ++;
        }
    count++;    
    })

I tried it with an Array instead of a regular variable but that didnt work either

intervalVar[count] = setInterval(showConsole, 1500);

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

挽你眉间 2025-01-18 09:11:40

您在数组上的方向是正确的,但您需要将项目推入其中:

intervalVar = []

// ...

intervalVar.push(setInterval(showConsole, 1500))

当您想要取消间隔时,请使用 slicepop 将其从数组中删除>,具体取决于您选择要取消的项目的方式。

You're on the right track with an array, but you need to push items onto it:

intervalVar = []

// ...

intervalVar.push(setInterval(showConsole, 1500))

When you want to cancel an interval, remove it from the array with slice or pop, depending on how you're selecting the item to cancel.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文