美文网首页
多个 eventListener, 如何取消

多个 eventListener, 如何取消

作者: xcyzjs | 来源:发表于2020-07-08 23:35 被阅读0次

    参考: JavaScript事件机制

    背景: 在 taro3.0.2 中, 小程序端使用 onPullDown(), 会造成 h5 端可以下拉, 但是不正常(顶部出现下拉空白, 不可恢复)

    后来发现 tao-tabbar__pannel 的 touchmove 事件造成的

    image.png

    于是要关闭这个事件, 但是 使用 removeEventListener 不管用, 使用 addEventListener 覆盖, 会发现会依次执行, 不会覆盖, 于是就有了参考文章里的方法 e.stopImmediatePropagation()

      async componentDidMount() {
        // h5 不支持下拉刷新, 下拉会出现空白, 且不消失
        if (process.env.TARO_ENV === 'h5') {
          const obj = document.getElementsByClassName('taro-tabbar__panel')
          obj[0].addEventListener('touchmove', function (e) {
            e.stopImmediatePropagation()
            e.preventDefault()
          })
        }
        .
        .
        .
      }
    

    相关文章

      网友评论

          本文标题:多个 eventListener, 如何取消

          本文链接:https://www.haomeiwen.com/subject/bupkcktx.html