2012-02-16 3 views
1

У меня есть элемент DOM с обработчиком событий, связанным с использованием addEventListener. К моменту, когда я хочу удалить его с помощью removeEventListener, у меня больше нет ссылки на функцию, которая обрабатывает событие.
Как удалить прослушиватель событий, кроме хранения ссылок на все обработчики событий по всему миру?Как удалить обработчик события без ссылки на функцию обработчика?

Я заметил, что если я отредактирую элемент DOM с помощью инструментов разработчика Chrome, это событие больше не будет обрабатываться. Могло ли существовать жизнеспособное решение?

Я не использую и не могу использовать библиотеку jQuery в этой конкретной ситуации.

ответ

0

Вы не можете; вам нужна эта ссылка. Либо хранить его по всему миру, как вы предлагаете, или хранить его в элементе DOM, как сказал Аарон Дигулла.

1

магазин ссылка на обработчик событий в DOM элемента:

e.handlerToRemove = handler; 
e.addEventListener(..., handler); 

Позже:

e.removeEventListener(e.handlerToRemove); 
Смежные вопросы