javascript - 删除特定类型的所有事件监听器

标签 javascript events

我想删除使用 addEventListener() 添加的特定类型的所有事件监听器。我看到的所有资源都说你需要这样做:

elem.addEventListener('mousedown',specific_function);
elem.removeEventListener('mousedown',specific_function);

但我希望能够在不知道它当前是什么的情况下清除它,像这样:

elem.addEventListener('mousedown',specific_function);
elem.removeEventListener('mousedown');

最佳答案

如果不拦截 addEventListener 调用并跟踪监听器或使用允许此类功能的库,这是不可能的。如果听众集合是可访问的,但 feature wasn't implemented .

您可以做的最接近的事情是通过克隆元素来删除所有监听器,这不会克隆监听器集合。

注意:这也会移除元素子元素的监听器。

var el = document.getElementById('el-id'),
    elClone = el.cloneNode(true);

el.parentNode.replaceChild(elClone, el);

关于javascript - 删除特定类型的所有事件监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19469881/

相关文章:

javascript - jQuery 验证器 addMethod 总是返回 false

javascript - 将 select 的内容拆分到不同的字段中

api - 如何获得我在去年贡献的所有 GitHub 项目的列表?

javascript - 动态创建的元素上的事件绑定(bind)?

javascript - JSON 引用以前的属性

javascript - 如何在模态关闭后停止 Iframe(视频)?

javascript - 正则表达式:在 url 登录/测试中获取字符串

php - 动态查询数据库以检查值

android - 检测android媒体播放器的停止事件

javascript - 类型错误 : Object function EventEmitter()