首页 > web前端 > js教程 > 正文

如何在不替换元素的情况下删除匿名事件侦听器?

Patricia Arquette
发布: 2024-10-18 16:44:29
原创
849 人浏览过

How to Remove Anonymous Event Listeners Without Replacing Elements?

在不替换元素的情况下删除事件监听器

在 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中文网其他相关文章!

来源:php
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!