无法删除touchmove事件-Vue Watcher

时间:2019-05-17 07:43:07

标签: javascript vue.js

防止在移动设备上滚动的功能:

const hideScroll = function(e) {
  e.preventDefault()
}

添加侦听器:

document.body.addEventListener('touchmove', hideScroll, { passive: false })

删除监听器:

document.body.removeEventListener('touchmove', hideScroll)

在chrome devtools中,我清楚地看到,添加此侦听器有效,我无法使用触摸滚动,但是当我触发removeEventListener并没有将其删除时,我在chrome dev工具中看到了这一点,我可以t用触摸滚动。在Vue观察者中使用它:

watch: {
  // hidescroll function is here: const hideScroll = function(e) {}
  chatWindow(newValue) {
    if (newValue) {
      // adding listener
    } else {
      // removing listener
    }
  }
}

1 个答案:

答案 0 :(得分:0)

hideScroll功能移出观察者。

现在,每次触发监视程序时,您都在创建新功能。函数看起来相同,但是与事件侦听器附加的实例不同,这就是为什么您不能删除它的原因。