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秒
  }
}
        
      
                    
                  
                    

