Javascript 禁用外部库设置的事件侦听器

Javascript 禁用外部库设置的事件侦听器,javascript,Javascript,在外部库的某些位置(当然,我无法更改),事件侦听器是通过以下方式创建的: someElement.addEventListener('keydown', function(e) { whatever(); }); 我需要摆脱这个侦听器,或者以某种方式覆盖它。但这似乎无法完成,因为我没有任何方法引用所使用的匿名函数 没有必要只删除这个侦听器。如果可能的话,删除所有的键也可以 我看到一个选项是克隆元素并替换它,但我不能这样做,因为有很多初始化,并且创建了很多其他事件侦听器。我只需要取消按键

在外部库的某些位置(当然,我无法更改),事件侦听器是通过以下方式创建的:

someElement.addEventListener('keydown', function(e) {
    whatever();
});
我需要摆脱这个侦听器,或者以某种方式覆盖它。但这似乎无法完成,因为我没有任何方法引用所使用的匿名函数

没有必要只删除这个侦听器。如果可能的话,删除所有的
键也可以

我看到一个选项是克隆元素并替换它,但我不能这样做,因为有很多初始化,并且创建了很多其他事件侦听器。我只需要取消
按键
一个


有什么我可以做的吗?

您可以在中侦听事件并停止其立即传播

const input=document.querySelector('input'))
const log=()=>console.log('I shouldnt log')
input.addEventListener('keydown',e=>{
e、 停止即时复制()
},对)
input.addEventListener('keydown',log)

如果您想要快速脏解决方案,请删除该元素,然后再次动态添加。@kemicofa除非它是委托事件如果您能够在外部库运行之前潜入一些代码,您可以使用monkeypatch addEventListener,以便以后能够找到并删除它们:我接受这个答案,因为它已经走到了尽头。这对我不起作用,但这是正确的答案。谢谢你,尼克:-)