Javascript 删除“的VentListener”;卷轴;课堂事件
在javascript中,我有一个类,它有一个运行良好的Javascript 删除“的VentListener”;卷轴;课堂事件,javascript,Javascript,在javascript中,我有一个类,它有一个运行良好的scroll事件显示多个console.log(“确定滚动”)。 const PaginatorInfiniteScroll = class { constructor(paginationElement) { ... window.addEventListener('scroll', () =>
scroll
事件显示多个console.log(“确定滚动”)
。
const PaginatorInfiniteScroll = class {
constructor(paginationElement) {
...
window.addEventListener('scroll', () => {
this.scroll()
})
}
scroll()
{
console.log('OK scroll')
...
}
endScroll()
{
window.removeEventListener('scroll', () => {
console.log('OK remove')
this.scroll()
}, true)
}
...
但当我不再需要此事件时,我想将其删除
当我执行this.endScroll()
时,显示了良好的console.log('OK remove')
,但我仍然有滚动时显示的console.log('OK scroll')
我认为我执行的
removeEventListener('scroll')
很糟糕,但不知道如何执行您只需要传递需要删除侦听器的事件的名称。这将删除scroll
event的所有事件侦听器
window.removeEventListener('scroll');
编辑:
如果只想删除scroll
事件的特定侦听器,则需要将回调函数保存在某个变量中,并将该变量传递给removeEventListener
函数
const callback = () => {
console.log('OK Scroll');
}
window.addEventListener('scroll', callback); // add scroll event listener
window.removeEventListener('scroll', callback); // remove scroll event listener
您可以调用
removeEventListener('scroll')
,它将删除该事件的所有附加侦听器。如果要删除某个特定的事件,则需要保存您用作侦听器的匿名方法,以便您可以将其指定为需要删除的事件。谢谢,但我只想删除此事件。我的页面中有其他“滚动”事件,但我不想删除它们。:)好的,那么请阅读我评论的第二部分。谢谢,如何注册匿名函数?:)您已经注册了一个匿名函数addEventListener('scroll',()=>{})
。该arrow函数是一个匿名函数,因为没有对它的持久引用。如果您希望能够注销该方法,特别是,您必须对其进行引用,然后删除该特定事件侦听器。谢谢,但我只想删除该事件。我的页面中有其他“滚动”事件,但我不想删除它们。:)