小编典典

删除特定类型的所有事件侦听器

all

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

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

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

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

阅读 60

收藏
2022-06-24

共1个答案

小编典典

addEventListener不幸的是,如果不拦截呼叫并跟踪侦听器或使用允许此类功能的库,这是不可能的。如果 listeners
集合是可访问的,但该功能没有实现,那将会是这样。

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

注意:这也将删除元素子级的侦听器。

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

el.parentNode.replaceChild(elClone, el);
2022-06-24