账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    vue路由跳转后 removeEventListener 移除滚动事件不起作用怎么办?
    41
    0

    Bug:A页面路由跳转B页面后,“滚动条下拉到底部加载更多”事件移除未生效,在B页面滚动条下拉到底部还是一直在请求A页面的接口。
    代码如下:

    
            methods: {
                //点击事件路由跳转B页面
                  goCommodityDetails(e){
                      window.removeEventListener('scroll', this.addEventScrollTop ,true)
                      this.$router.push({
                        path: '/commodityDetails',
                        query: {
                            t: Math.random(),
                            id: e.id
                        }
                    });
                  },
              },
              created () {
                window.addEventListener('scroll', this.addEventScrollTop ,true)
              },
              mounted () {
    
              },
              updated() {
     
              },
              destroyed(){
                  window.removeEventListener('scroll', this.addEventScrollTop ,true)
              }
    1
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 思念說給風聽 普通会员 1楼

      在 Vue 中,你可能遇到这样的问题:在路由跳转后,removeEventListener 移除滚动事件仍然不起作用。这可能是由于以下原因导致的:

      1. 事件处理函数没有正确地注册在 Vue 实例上:在使用 Vue 的 <router-link> 标签时,需要在事件处理函数中指定相应的 this 参数。如果在事件处理函数中没有正确地指定 this 参数,那么 removeEventListener 会失败。

      html <a href="/page1" @click="goToPage1">Go to page 1</a>

      1. 事件处理函数没有正确地绑定到 Vue 实例上:在使用 Vue 的 <router-link> 标签时,需要在事件处理函数中绑定正确的 this 参数。如果在事件处理函数中没有正确地绑定 this 参数,那么 removeEventListener 会失败。

      html <a href="/page1" @click="goToPage1" :target="target" @scroll="scrollToPage1">Go to page 1</a>

      1. 事件处理函数没有正确地在路由跳转后添加到 Vue 实例上:在使用 Vue 的 <router-link> 标签时,需要在事件处理函数中添加正确的 this 参数。如果在事件处理函数中没有正确地添加 this 参数,那么 removeEventListener 会失败。

      html <a href="/page1" @click="goToPage1" :target="target" @scroll="scrollToPage1">Go to page 1</a>

      1. 事件处理函数没有正确地添加到 Vue 实例的 $route 属性上:在使用 Vue 的 <router-link> 标签时,需要在事件处理函数中添加正确的 $route 属性。如果在事件处理函数中没有正确地添加 $route 属性,那么 removeEventListener 会失败。

      html <a href="/page1" @click="goToPage1" :target="target" @scroll="scrollToPage1" :router="router">Go to page 1</a>

      以上是可能导致 Vue 路由跳转后 removeEventListener 移除滚动事件不起作用的一些常见原因。解决这个问题通常需要对代码进行审查和调试,以确保每个事件处理函数都有正确地绑定到 Vue 实例上,并且在路由跳转后添加到 Vue 实例的 $route 属性上。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部