1 回答
TA贡献1827条经验 获得超4个赞
你addEventListener和reoveEventListener调用的函数参数是不同的。要了解这一点,请看这个简化的示例:
class X { method() {} }
let x = new X();
console.log(x.method.bind(x) === x.method); // false
要解决此问题,请保留对添加事件侦听器时使用的函数的引用:
class LazyLoad {
constructor(elementoScroll, porcentagem, objetoAxios) {
this.elementoScroll = elementoScroll;
console.log(this.elementoScroll.scrollTop);
this.porcentagem = porcentagem;
this.objetoAxios = objetoAxios;
this.endereco = objetoAxios;
this.addListener();
}
addListener() {
this.listener = this.onScroll.bind(this);
this.elementoScroll.addEventListener('scroll', listener, true);
}
onScroll(event) {
console.log(event);
let scrollPorcentagem = Math.floor(this.elementoScroll.scrollTop / (this.elementoScroll.scrollHeight - this.elementoScroll.clientHeight) * 100);
if (scrollPorcentagem >= 90) {
this.elementoScroll.removeEventListener('scroll', this.listener, true);
}
}
}
添加回答
举报