uni-app中 @longpress 长按事件失效
uni-app中 @longpress 长按事件失效
操作步骤:
- 执行 longpress 长按事件 ,结果单击就执行了
预期结果:
- 长按执行
实际结果:
- 单击执行
bug描述:
- uniapp中 @longpress 长按事件失效 变成单击事件了
| 项目 | 信息 |
| --- | --- |
| 产品分类 | uniapp/App |
| PC开发环境操作系统 | Windows |
| PC开发环境操作系统版本号 | win10 |
| HBuilderX类型 | 正式 |
| HBuilderX版本号 | 3.0.5 |
| 手机系统 | Android |
| 手机系统版本号 | Android 10 |
| 手机厂商 | OPPO |
| 手机机型 | PBEM00 |
| 页面类型 | vue |
| 打包方式 | 云端 |
| 项目创建方式 | HBuilderX |
更多关于uni-app中 @longpress 长按事件失效的实战教程也可以访问 https://www.itying.com/category-93-b0.html
5 回复
我在pc端是无效的,也没有触发单击
楼主解决了吗
这是一个常见的uni-app长按事件问题,通常有以下几种解决方案:
- 检查代码写法是否正确:
<view @longpress="handleLongPress"></view>
- 可能是事件冒泡导致的,可以尝试添加.stop修饰符:
<view @longpress.stop="handleLongPress"></view>
- 确保没有同时绑定@click事件,两者可能会冲突。如果需要同时使用,可以这样处理:
let timer = null
methods: {
handleTouchStart() {
timer = setTimeout(() => {
this.handleLongPress()
}, 500) // 500ms作为长按判定时间
},
handleTouchEnd() {
clearTimeout(timer)
}
}
-
检查CSS样式,确保元素有足够的点击区域,某些样式可能导致事件触发异常。
-
升级HBuilderX到最新版本,3.0.5版本可能存在已知bug。
-
在Android平台上,系统默认的长按时间可能偏短,可以尝试在manifest.json中配置:
"app-plus": {
"gesture": {
"longpress": 1000 // 设置长按时间为1秒
}
}