Nuxt-无法删除事件监听器

问题描述 投票:0回答:1

我正在使用nuxt.js,并具有一个滚动器,该滚动器在页面的固定点滚动并停止。

当我单击到下一页时,该方法仍在寻找$ref=nav,并且由于未存在Cannot read property 'getBoundingClientRect' of undefined而返回未定义状态>

我可以添加eventListener,但是不能删除eventListener。

Listener

mounted(){
   window.addEventListener('scroll', this.stickyScroll);
},
beforeDestroy(){
   window.removeEventListener('scroll', this.stickyScroll);
}

Scroller

stickyScroll(){
   window.document.onscroll = () => {
        let navBar = this.$refs.nav;
        let navBarXPosition = navBar.getBoundingClientRect().x;
        let navScrollSpy = this.$refs.navScrollSpy;
        let navScrollSpyXPosition = navScrollSpy.getBoundingClientRect().bottom;
        if(window.scrollY > navBarXPosition && navScrollSpyXPosition > 25){
             this.active = true;
         } else {
             this.active = false;
         }
    }
 },

我正在使用nuxt.js,并具有一个滚动器,该滚动器在页面的固定点滚动并停止。当我单击到下一页时,该方法仍在寻找$ ref = nav并返回未定义的状态...

javascript vue.js nuxt.js
1个回答
1
投票

window.document.onscroll = fn实际上与window.addEventListener('scroll', fn)相同,因此stickyScroll() adds

© www.soinside.com 2019 - 2024. All rights reserved.