首页  >  文章  >  web前端  >  有没有办法在不替换元素的情况下删除 JavaScript 中的匿名事件侦听器?

有没有办法在不替换元素的情况下删除 JavaScript 中的匿名事件侦听器?

Barbara Streisand
Barbara Streisand原创
2024-10-18 16:47:03779浏览

Is There a Way to Remove Anonymous Event Listeners in JavaScript Without Replacing the Element?

删除匿名事件监听器

在 JavaScript 中,事件监听器通常使用匿名函数添加到 DOM 元素。但是,在不替换元素的情况下删除这些事件侦听器可能具有挑战性。

问题

有没有办法删除像这样添加的事件侦听器:

element.addEventListener(event, function(){/* do work here */}, false);

...不替换元素?

答案

不幸的是,除非您存储了引用,否则不可能干净地删除匿名事件侦听器

解决方案

一种方法是将事件侦听器添加到特定对象,而不是元素本身。例如,您可以有一个“MyListener”对象来管理所有事件侦听器。然后,当您不再需要事件侦听器时,只需将其从“MyListener”对象中删除即可。

这是一个示例:

// Create a "MyListener" object
var myListener = {
  events: []
};

// Add an event listener to the "MyListener" object
myListener.add("click", function(){/* do work here */}, false);

// Remove the event listener from the "MyListener" object
myListener.remove("click");

以上是有没有办法在不替换元素的情况下删除 JavaScript 中的匿名事件侦听器?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn