@SergeiB

Как снять обработчик события?

Есть функция вида
function closeOnEscapePress(modal, e) {
  if (e.keyCode === 27) {
    closeModal(modal);
  }
}

Вешаю следующий обработчик:
document.addEventListener('keydown', closeOnEscapePress.bind(null, modal));

Как его удалить? Так не работает:
document.removeEventListener('keydown', closeOnEscapePress.bind(null, modal));
  • Вопрос задан
  • 164 просмотра
Решения вопроса 1
bind создает новую функцию, необходимо запомнить ее.

const closeOnEscapePress = closeOnEscapePress.bind(null, modal);

document.addEventListener('keydown', closeOnEscapePress);
document.removeEventListener('keydown', closeOnEscapePress);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы