收藏
回答

IntersectionObserver无法监听到动态生成的元素

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug IntersectionObserver 工具 6.5.3 2.6.2

- 当前 Bug 的表现(可附上截图)


- 预期表现


- 复现路径


- 提供一个最简复现 Demo


如题,IntersectionObserver只能监听到onready时页面上已经渲染的元素,动态加载的元素 监听不到。

求解??

回答关注问题邀请回答
收藏

2 个回答

  • Maverick
    Maverick
    2019-03-18

    不存在的元素当然不能监听……待元素插入节点后再调用IntersectionObserver.observe

    2019-03-18
    有用
    回复 4
    • 年糕妖怪
      年糕妖怪
      2019-03-18

      已经放弃。。 直接监听pagescroll了。。

      2019-03-18
      回复
    • Maverick
      Maverick
      2019-03-18回复年糕妖怪

      真机上onPageScroll的延迟不是很高吗。。

      2019-03-18
      回复
    • 年糕妖怪
      年糕妖怪
      2019-03-18回复Maverick

      是有点。。但是总不能每次插入节点的时候,就新建个intersectionObserver去监听吧??

      2019-03-18
      回复
    • Maverick
      Maverick
      2019-03-18回复年糕妖怪

      那也比onPageScroll效率高。。。IntersectionObserver可以定thresholds节流,onPageScroll视图层和逻辑层通信太频繁了。

      2019-03-18
      回复
  • 疯狂的小辣椒
    疯狂的小辣椒
    2019-03-14

    请具体描述问题出现的流程,并提供能复现问题的简单代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)。

    2019-03-14
    有用
    回复 4
    • Stranger🐟🐟
      Stranger🐟🐟
      2019-10-30
      请问这个问题还没有解决吗,这个问题带来了很大的麻烦,每次新渲染出的节点都不会被监听,如果每次渲染都需要重新监听,那也太难受了
      2019-10-30
      回复
    • Dwayne
      Dwayne
      2023-05-16回复Stranger🐟🐟
      +1,我出现了,请问解决了吗
      2023-05-16
      回复
    • A(lwb)
      A(lwb)
      02-20
      +1,我出现了,请问解决了吗
      02-20
      回复
    • 第一幕
      第一幕
      04-22回复Dwayne
      这个问题可以这样处理,在元素 this.setData({list,()=>{
         // 在更新列表后,这里设置监听

      }})
      最后在组件周期detached 和页面周期hide里添加
      this._obsever && this._obsever.disconnect()
      04-22
      回复
登录 后发表内容