@Nick-Fisher

Как убрать eventListener из window?

Здравствуйте. У меня есть экранная форма где рендерится таблица и фильтры к ней. В фильтрах ( в дидмаунте хока фильтров, если точнее) у меня вешаются лисенеры, которые слушают enter(keyup), потом появляется поп-ап поверх таблицы и фильтра, где используется тот же компонент фильтра и он опять вешает слушателя. Получается, что по клику на enter события происходят и в поп-апе и в таблице, т.к. сама таблица не анмаунтится. Вопрос: существуют ли способы как-то удалить конкретного лисенера, учитывая, что функция которая привязана не может быть анонимной(т.е. ссылка всегда разная, напрямую не получится)? Если что - e.stopPropagation тоже не помогает. Заранее спасибо.
  • Вопрос задан
  • 92 просмотра
Решения вопроса 2
Stalker_RED
@Stalker_RED
removeEventListener, но при этом нужна ссылка на функцию.
Ответ написан
Aetae
@Aetae Куратор тега JavaScript
Тлен
Если не помогает e.stopPropagation - можно заюзать e.stopImmediatePropagation. :)
И это даже сработает. По своему.

Ещё можно вешать обработчики через кастомную обёртку над addEventListener, где вести учёт всех вешаемых обработчиков в привязке к элементу(или например к вручную задаваемой метке) и соответственно спокойно потом их удалять не зная функции.

Только вот проблема у вас в архитектуре.
Найдите причину, почему одинаковые обработчики навешиваются дважды и\или не учитывают переключения фокуса\контекста и исправьте её.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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