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

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

Войти через центр авторизации
Похожие вопросы
от 30 000 до 65 000 руб.
BSSL Москва
от 50 000 до 150 000 руб.
от 60 000 до 90 000 руб.
23 июл. 2019, в 23:31
9000 руб./за проект
23 июл. 2019, в 22:14
18000 руб./за проект
23 июл. 2019, в 20:31
500 руб./за проект