小编典典

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

javascript

我想删除使用添加的所有特定类型的事件监听器addEventListener()。我看到的所有资源都在说您需要执行以下操作:

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

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

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

阅读 278

收藏
2020-05-01

共1个答案

小编典典

如果不拦截addEventListener呼叫并跟踪侦听器,或者使用不幸的是允许使用此类功能的库,那么这是不可能的。

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

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

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

el.parentNode.replaceChild(elClone, el);
2020-05-01