【问题标题】:removeEventListener without reference to event handlerremoveEventListener 不参考事件处理程序
【发布时间】:2012-08-22 17:57:22
【问题描述】:

我想知道是否可以在不引用应该删除的事件处理函数的情况下删除事件侦听器。

Jquery 的 $().unbind('touchmove') 将不起作用,因为事件侦听器是使用 Javascript 的 addEventListener('touchmove', handlerFunction) 添加的,而不是 Jquery 的 bind 函数。

removeEventListener('touchmove')似乎不起作用,这与Javascript函数规范一致。

【问题讨论】:

标签: javascript events dom-events


【解决方案1】:

您可以获取 DOM 元素的所有事件侦听器并删除一个/全部:

var eventlistener = getEventListeners(window)["DOMContentLoaded"][index];
window.removeEventListener("DOMContentLoaded", eventlistener.listener, eventlistener.useCapture);

取自这个答案:https://stackoverflow.com/a/26845805/712700

【讨论】:

    【解决方案2】:

    您应该始终将事件添加到特定对象,以便以后可以访问它们,试试这个。

    添加:

    window.addEventHandler( 'touchmove', function );
    

    删除:

    window.removeEventListener( 'touchmove', function );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-25
      • 1970-01-01
      相关资源
      最近更新 更多