web_Developer_Victor
@web_Developer_Victor
Что такое google?

Как удалить обрабочик события?

Всем привет! Я повешал на document обработчик события keydown.
document.addEventListener('keydown', function () {
    console.log(1);
};

Но по нажатию мне нужно удалить обработчик
var callback = function () {
    console.log(1);
    document.removeEventListener('keydown', callback);
}

document.addEventListener('keydown', callback);

И вроде все хорошо, но нет, оказалось, что мне нужно для callback передать параметр!

И так, вопрос года. Как передать в callback addEventListener'а параметр, а потом удалить EventListener?
  • Вопрос задан
  • 560 просмотров
Решения вопроса 1
sergiks
@sergiks Куратор тега JavaScript
♬♬
Можно сделать функцию-создающую-функцию с параметром:
function cbMaker(param) {
  const cb = function(event) {
    console.log(param, event);
    document.removeEventListener('keydown', cb);
  }
  return cb;
}

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

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

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