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
的输出。