Удаление анонимного слушателя события

Должен туда так или иначе удалить слушателя события, добавил как это:

element.addEventListener(event, function(){/* do work here */}, false);

Не заменяя элемент?

45
задан Jack Bashford 2 February 2019 в 05:49
поделиться

3 ответа

Невозможно полностью удалить обработчик событий, если вы не сохранили ссылку на обработчик событий при создании.

Обычно я добавляю их к основному объекту на этой странице, после чего вы можете выполнять итерацию и аккуратно избавляться от них, когда закончите с этим объектом.

20
ответ дан 26 November 2019 в 21:25
поделиться

Назначить обработчики событий с буквальными функциями сложно - их не только невозможно удалить, не клонируя узел и не заменив его клоном - вы также можете непреднамеренно назначить один и тот же обработчик несколько раз, что не может произойти, если вы используете ссылку на обработчик. Две функции всегда рассматриваются как два разных объекта, даже если они идентичны по символам.

2
ответ дан 26 November 2019 в 21:25
поделиться

Вы можете удалить слушателя событий следующим образом:

element.addEventListener("click", function clicked() {
    element.removeEventListener("click", clicked, false);
}, false);
16
ответ дан 26 November 2019 в 21:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: