2***@qq.com
2***@qq.com
  • 发布:2023-11-21 17:32
  • 更新:2023-11-21 19:53
  • 阅读:36

【报Bug】uni.createSelectorQuery().in(this).select() 报错 [object DOMException] at view.umd.min.js:1

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: Windows 10 家庭中文版 22H2

HBuilderX类型: 正式

HBuilderX版本号: 3.96

手机系统: Android

手机系统版本号: Android 12

手机厂商: 华为

手机机型: JEF-AN00

页面类型: vue

vue版本: vue2

打包方式: 离线

项目创建方式: HBuilderX

示例代码:
//长按事件回调    
openMessageBox(e) {    
    let id = e.currentTarget.id;    
    console.log(id)    
    const query = uni.createSelectorQuery().in(this);    
    query.select('#'+id).boundingClientRect(data => {    
         console.log("得到布局位置信息" + JSON.stringify(data));    
         console.log("节点离页面顶部的距离为" + data.top);    
    }).exec();    
}

操作步骤:

通过v-for 循环遍历一个列表,并将其的唯一属性作为id绑定到view上,并且给这个view 绑定长按事件。触发长按事件后通过event拿到view 的id,通过选择器选中这个元素,打印元素属性。

预期结果:

打印出该元素属性

实际结果:

报错,报错信息 [object DOMException] at view.umd.min.js:1

bug描述:

uni.createSelectorQuery().in(this).select() 报错 [object DOMException] at view.umd.min.js:1

app端 vue2
这个是长按事件回调,id是通过v-for进行绑定的,并不存在id重复的情况

//长按事件回调    
openMessageBox(e) {    
    let id = e.currentTarget.id;    
    console.log(id)    
    const query = uni.createSelectorQuery().in(this);    
    query.select('#'+id).boundingClientRect(data => {    
         console.log("得到布局位置信息" + JSON.stringify(data));    
         console.log("节点离页面顶部的距离为" + data.top);    
    }).exec();    
}

执行此代码,会报错,报错信息 [object DOMException] at view.umd.min.js:1
并且只能打印出 id

2023-11-21 17:32 负责人:无 分享
已邀请:
DCloud_UNI_YRJ

DCloud_UNI_YRJ

提供下测试工程

要回复问题请先登录注册