删除匿名事件监听器
在 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中文网其他相关文章!