class Scroller {
public listenerWrap = null;
public elem = document.querySelector('.elem');
addListener() {
this.listener = this.listener.bind(this);
this.elem.addEventListener('scroll', this.listenerWrap);
}
listener() {
console.log('scroll', this);
}
removeListener() {
this.elem.removeEventListener('scroll', this.listenerWrap);
}
}
var s = new Scroller();
s.addListener();
s.removeListener();
Это упрощенная версия кода, который я использую. Я хочу добавить и удалить прослушиватель событий, который должен иметь this
. Поэтому я оборачиваю функцию прослушивания binded в переменную listenerWrap
, чтобы добавить и удалить точно такую же функцию.
Проблема в том, что прослушиватель событий не удален, и я все еще вижу вывод console.log
при прокрутке элемента.