removeEventListener,而不引用事件处理程序

removeEventListener without reference to event handler

本文关键字:事件处理 程序 引用 removeEventListener      更新时间:2023-09-26

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

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

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

您可以获取DOM元素的所有事件侦听器,并删除one/all:

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

根据以下回答:https://stackoverflow.com/a/26845805/712700

您应该始终将事件添加到特定对象中,以便以后可以访问它们,请尝试此操作。

添加:

window.addEventHandler( 'touchmove', function );

要删除:

window.removeEventListener( 'touchmove', function );