//长按事件回调
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();
}

- 发布: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
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: Windows 10 家庭中文版 22H2
HBuilderX类型: 正式
HBuilderX版本号: 3.96
手机系统: Android
手机系统版本号: Android 12
手机厂商: 华为
手机机型: JEF-AN00
页面类型: vue
vue版本: vue2
打包方式: 离线
项目创建方式: HBuilderX
示例代码:
操作步骤:
通过v-for 循环遍历一个列表,并将其的唯一属性作为id绑定到view上,并且给这个view 绑定长按事件。触发长按事件后通过event拿到view 的id,通过选择器选中这个元素,打印元素属性。
通过v-for 循环遍历一个列表,并将其的唯一属性作为id绑定到view上,并且给这个view 绑定长按事件。触发长按事件后通过event拿到view 的id,通过选择器选中这个元素,打印元素属性。
预期结果:
打印出该元素属性
打印出该元素属性
实际结果:
报错,报错信息 [object DOMException] at view.umd.min.js:1
报错,报错信息 [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
1 个回复
DCloud_UNI_YRJ
提供下测试工程