收藏
回答

boundingClientRect回调函数执行多次的问题

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug SelectorQuery NodesRef.boundingClientRect(function callback) 工具 6.5.3 2.6.0



node.boundingClientRect( rect=>{
   console.log('test')
}).exec()

如代码所示,重复调用时,控制台会输出多个'test'。

是我使用方式不对吗? 文档里也没有介绍为什么会执行多次。

最后一次编辑于  2019-04-09
回答关注问题邀请回答
收藏

6 个回答

  • zero
    zero
    2020-10-19

    获取元素都用 wx.createSelectorQuery(),不要用变量代替,不然会循环,亲测有效。

    //不要这样 多个的时候就会循环
    var query = wx.createSelectorQuery() 
    query .select('.listbox').boundingClientRect(functio(res){}).exec();
    
    //用这种
    wx.createSelectorQuery().select('.listbox').boundingClientRect(functio(res){}).exec();
    
    2020-10-19
    有用 7
    回复
  • 拾忆
    拾忆
    12-10

    方式一:创建一次,就消费一次,日志出现一次

    方式二:创建一次,多次消费,日志出现多次

    12-10
    有用
    回复
  • 徐路
    徐路
    2020-10-15

    每次执行exec 都会触发全部boundingClientRect 里面的回调

    2020-10-15
    有用
    回复
  • 陈志高
    陈志高
    2019-12-10


    这个方法不能重复使用吗?它会按照重复使用的次数递增重复调用回调,

    2019-12-10
    有用
    回复 2
    • 陈志高
      陈志高
      2019-12-10
      找到原因了,创建一个查询使用多次就会出现这种情况,如果查询三次,就创建三次就不会出现这种情况,微信官方文档边界问题一个都不说,全靠开发者踩坑,把编写文档的吊起来打
      2019-12-10
      2
      回复
    • Lonec
      Lonec
      2022-11-17
      正解,创建一个 query 多次使用就出现多次调用 rect 的问题了,创建一个用一个才行人🤣
      2022-11-17
      回复
  • 我很忙.
    我很忙.
    2019-08-14

    借个帖,我这段代码发现一直无限执行回调函数。用的原生的,没用任何框架。

    2019-08-14
    有用
    回复 5
    • 墨韵竹影
      墨韵竹影
      2019-11-30
      每次获取元素,重新wx.createSelectorQuery()就可以了
      2019-11-30
      3
      回复
    • 墨韵竹影
      墨韵竹影
      2019-11-30
      昨天遇到同样的问题,然后百度找到了这个帖子
      2019-11-30
      回复
    • 王帅
      王帅
      2020-03-19回复墨韵竹影
      感谢,刚刚也遇到了。现在解决了
      2020-03-19
      回复
    • 岁安
      岁安
      2020-06-19回复墨韵竹影
      非常感谢,这个问题卡我一天了,刚刚解决。
      2020-06-19
      回复
    • zero
      zero
      2020-10-19回复墨韵竹影
      没错,如果获取多个元素的话,var query = wx.createSelectorQuery(); 这样就会重复
      2020-10-19
      回复
  • 灵芝
    灵芝
    2019-04-09

    麻烦提供能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html

    2019-04-09
    有用
    回复 5
    • Rychou
      Rychou
      2019-04-09

      你好,经过调试应该是Taro框架的问题,我没有使用原生开发。我去Taro的社区反馈一下。谢谢你的回复

      2019-04-09
      回复
    • 灵芝
      灵芝
      2019-04-09回复Rychou

      好的,不客气

      2019-04-09
      回复
    • duxapp
      duxapp
      2019-07-26回复Rychou
      你搞定了吗,我也遇到
      2019-07-26
      回复
    • 张亚生
      张亚生
      2019-12-27回复Rychou
      你好, 我用的Taro,遇到相同的问题,不知道你是否已经解决呢
      2019-12-27
      回复
    • Rychou
      Rychou
      2020-01-02回复张亚生
      很久以前遇到的问题了,现在Taro还有这个问题吗?我当时用这个实现拖拽的动画,由于在Android的卡顿很严重,所以后来放弃了。后面用WXS实现了拖拽动画
      2020-01-02
      回复
登录 后发表内容