lavezzi1
@lavezzi1

Почему не удаляется event listener?

Есть класс, в методе show подписываюсь на node элемент:
this.overlay.addEventListener('click', this.hide.bind(this));


В методе hide отписываюсь:
this.overlay.removeEventListener('click', this.hide.bind(this));


Но через хромовский devtools если смотреть, то на node все равно весит обработчик на клик.
  • Вопрос задан
  • 811 просмотров
Решения вопроса 2
teknik2008
@teknik2008
Расскажите про GOLANG. Мне интересно
Через декоратор
let _this=this
let hideHandler=(e)=>{_this.hide(e,this)}
this.overlay.addEventListener('click', hideHandler);
//...... где-то по коду
this.overlay.removeEventListener('click', hideHandler);
Ответ написан
Комментировать
Negwereth
@Negwereth
lvivcss.com.ua
Bind всегда возвращает новую копию функции. Сохраните результат в переменную и вешайте/снимайте уже её
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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