在不替换元素的情况下删除事件监听器
在 JavaScript 中,使用 addEventListener 方法添加的匿名事件监听器在不了解原始事件监听器的情况下无法直接删除函数引用。
分配给变量:
一种解决方法是在将匿名函数添加到事件侦听器之前将其分配给变量:
<code class="js">const myEventHandler = function() { // Your code here }; element.addEventListener(event, myEventHandler, false);</code>
然后,您可以通过删除对变量的引用来删除事件侦听器:
<code class="js">element.removeEventListener(event, myEventHandler);</code>
存储在对象中:
另一种方法是存储主对象内的对象中的匿名事件处理程序:
<code class="js">mainObject.eventHandlers = { [event]: function() { // Your code here } }; element.addEventListener(event, mainObject.eventHandlers[event], false);</code>
您可以通过迭代对象并删除相应的属性来删除事件侦听器:
<code class="js">for (const event in mainObject.eventHandlers) { element.removeEventListener(event, mainObject.eventHandlers[event]); }</code>
注意: 重要的是要记住,删除事件处理程序只会阻止它们将来被触发。任何已经发生的事件仍将执行其处理程序。
以上是如何在不替换元素的情况下删除匿名事件侦听器?的详细内容。更多信息请关注PHP中文网其他相关文章!