javascript - 类中 "scroll"事件的removeEventListener

标签 javascript

在 javascript 中,我有一个类,它有一个运行良好的 scroll 事件。 显示多个 console.log('OKscroll')

            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(滚动时出现“确定滚动”)

我认为我的 removeEventListener('scroll') 执行得很差,但不知道该怎么做

最佳答案

您需要将回调函数保存在某个变量中,并将该变量传递给removeEventListener函数

const callback = () => {
    console.log('OK Scroll');
}

window.addEventListener('scroll', callback);       // add scroll event listener

window.removeEventListener('scroll', callback);    // remove scroll event listener

关于javascript - 类中 "scroll"事件的removeEventListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62519338/

相关文章:

javascript - 使用 Google API 进行身份验证后无法获取访问和刷新 token

javascript - 奇怪的行为格式化 moment.js 日期

javascript - 颜色 :transparent on text in ie (highlight text in textarea using overlay technique)?

javascript - 清除 bootstrap-datepicker 的值

javascript - NodeJS 中的 varexports = module.exports = {}

javascript - XMLHttpRequest 引荐来源网址和 iframe

javascript - 如何防止 HTML5 Web Worker 锁定从而正确响应来自父级的消息

javascript - 如何在 AngularJS 模式 Bootstrap 之外更新 $scope?

javascript - JQuery Mobile 隐藏 &lt;input&gt; 不会隐藏 &lt;input&gt; 字段周围的 <div>

JavaScript 下载链接