gpt4 book ai didi

javascript - 无法使 EventListener 仅触发一次 JavaScript

转载 作者:行者123 更新时间:2023-11-28 17:33:36 24 4
gpt4 key购买 nike

我正在尝试创建一个仅触发一次的链接,以便我可以将其更改为另一个事件监听器。当我按“显示更多”时,我希望删除当前的 EventListener,因为现在它只是继续触发其他“显示更多-”链接,因为我使用的是数组解决方案。

这是我当前正在使用的函数,但我不觉得它会触发removeEventListener,因为我可以多次按下它。你可以在我的 CodePen 中看到这一点

for (let i = 0; i < this.showMoreLinks.length; i++)
{
this.showMoreLinks[i].addEventListener("click", function handler(e) {
this.UpdateShowMore(i);
e.currentTarget.removeEventListener(e.type, handler);
}.bind(this));
}

完整代码:

https://codepen.io/indiehjaerta/pen/qoMLQK

也许这甚至不是最明智的选择,因此也适用任何其他代码建议。

最佳答案

对此的最佳解决方案是在事件上设置一个标志,使监听器成为准时监听器。

请将您的 JavaScript 代码更新为:

this.showMoreLinks[i].addEventListener("click", function handler(e) { 
this.UpdateShowMore(i);
}.bind(this), {once : true});

您不必编写任何removeEventListner()。

关于javascript - 无法使 EventListener 仅触发一次 JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49669371/

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