Как отменить 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);
  }
}
  • Вопрос задан
  • 1672 просмотра
Решения вопроса 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);
  }
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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