javascript - 删除 DOM 事件观察器

标签 javascript dom

我正在基于 javascript 的系统中使用一些遗留代码(不祥的音乐),并且此遗留代码添加了这样的事件监听器

foo.addEventListener("click",function(){
    //do some stuff
});

有没有办法让我以编程方式删除这样添加的事件监听器?我知道removeEventListener ,但是从文档中并不清楚如何(如果有的话)删除程序员通过匿名函数添加的监听器。

最佳答案

据我所知,如果您想调用 removeEventListener,则不能使用匿名函数,因为您需要引用与 addEventListener 使用的同一函数code> 唯一的方法是为函数命名(例如,不是匿名的)。

类似的问题和结论在这里:removeEventListener on anonymous functions in JavaScript

<小时/>

在不更改代码结构的情况下,您可以为其指定一个名称,然后在以后使用该名称。

foo.addEventListener("click", function fooClickHandler(){
    //do some stuff
});

// then later
foo.removeEventListener("click", fooClickHandler);

关于javascript - 删除 DOM 事件观察器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19824265/

相关文章:

javascript - 将多个 Backbone View $el 合并到一个 jQuery 对象中

javascript - 在隐藏值上调用 jQuery .trigger ('change' ) 会破坏依赖于 knockout 的可观察对象

javascript - 如何使用 JSDoc 记录 useState Hook ?

javascript - 我的 Node 中的 PBKDF2 有什么问题吗?

javascript - sheet.cssRules 在内页上抛出错误但在主页上工作正常

javascript - 正则表达式效率,在 html 中选择文本的更好方法

javascript - 删除 html 页面的可打印版本上的输入占位符

javascript - Axios 完成事件

javascript - 重新加载动态加载的脚本

javascript - 客户端 JavaScript 应用程序中的事件