Как удалить обработчик события без ссылки на функцию обработчика? - PullRequest
1 голос
/ 16 февраля 2012

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

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

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

Ответы [ 2 ]

1 голос
/ 16 февраля 2012

Сохранить ссылку на обработчик события в элементе DOM:

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

Позже:

 e.removeEventListener( e.handlerToRemove );
0 голосов
/ 06 марта 2012

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...