迭代 getEventListeners() 返回对象

问题描述 投票:0回答:2

我正在寻找一种方法来迭代对象

getEventListeners(obj)
返回。 这样,我就不需要特定的代码来迭代事件侦听器类型,或者检查它们是否存在于被检查的元素上。

我的目标是从一个元素中移除一些事件监听器。例如删除所有鼠标相关的,并保留其他的。

javascript dom-events
2个回答
21
投票

getEventListeners(obj)
只是 Google Chrome 特定的命令行工具功能。这意味着您只能在手动输入控制台时在 Chrome 开发工具中使用此功能。您不能在实际的 JavaScript 源代码中使用此方法。

如果你想实现你所描述的,AFAIK 你必须手动跟踪你的听众。检查这个答案以获得进一步的说明。


13
投票

getEventListeners()
将返回简单的 JS 对象,您可以像这样迭代对象:

var listeners = window.getEventListeners(document.body);
Object.keys(listeners).forEach(event => {
    console.log(event, listeners[event]);
});

但是看起来

getEventListeners
方法只能在 chrome 中使用,并且只能在 DevTools 中手动输入。

© www.soinside.com 2019 - 2024. All rights reserved.