Задать вопрос

Как отменить addEventListener?

Как отменить прослушивание события?
fun('Прошло 5сек');

function fun(str) {
  var timerLogout;
  document.addEventListener('mousemove', resetTimer.bind(null, str));
  resetTimer(str);

  function resetTimer(str) {
    clearTimeout(timerLogout);
    timerLogout = setTimeout( function() {
      RemoveEventListener(str);
    }, 5000);
  }

  function RemoveEventListener(str) {
    console.log('RemoveEventListener вызвана, удаляем прослушивание');
    document.removeEventListener('mousemove', resetTimer.bind(null, str));
    console.log(str);
  }
}
  • Вопрос задан
  • 1744 просмотра
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Фронтенд-разработчик
    10 месяцев
    Далее
  • Skillfactory
    Профессия Веб-разработчик
    12 месяцев
    Далее
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
Решения вопроса 1
alexey-m-ukolov
@alexey-m-ukolov Куратор тега JavaScript
Нужно сохранить ссылку на функцию:
fun('Прошло 5сек');

function fun(str) {
  var timerLogout;
  var handler = resetTimer.bind(null, str);
  document.addEventListener('mousemove', handler);
  resetTimer(str);

  function resetTimer(str) {
    clearTimeout(timerLogout);
    timerLogout = setTimeout( function() {
      RemoveEventListener(str);
    }, 5000);
  }

  function RemoveEventListener(str) {
    console.log('RemoveEventListener вызвана, удаляем прослушивание');
    document.removeEventListener('mousemove', handler);
    console.log(str);
  }
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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