uni-app iOS的nvue页面阻止事件冒泡不生效
uni-app iOS的nvue页面阻止事件冒泡不生效
| 开发环境 | 版本号 | 项目创建方式 |
|---|---|---|
| Mac | 11.6 | HBuilderX |
### 示例代码:
```html
<cover-view v-if="changeSrcShow" [@click](/user/click).stop="" class="pop-box">
<div class="pop-header">
<text class="text-header">选择清晰度</text>
</div>
<div class="pop-item" v-for="(item,index) in srcList" :key="'srcList'+index" [@click](/user/click).stop="choosSrc($event, item)">
<text :class="srcText==item.title ? 'text2' : 'text1'">{{item.title}}</text>
</div>
</cover-view>
操作步骤:
视频播放页面选择片段、选择清洗度等的点击事件
预期结果:
只触发一层点击事件
实际结果:
触发多层点击事件
bug描述:
iOS的nvue页面阻止事件冒泡@click.stop=""不生效
更多关于uni-app iOS的nvue页面阻止事件冒泡不生效的实战教程也可以访问 https://www.itying.com/category-93-b0.html
事例项目已上传
您好,重新上传了一份简单的事例
事例项目已上传
其他组件上是否生效?
text可以生效
我上传了一份简单的事例 maopao.nvue_.zip,您可以看下
单个文件的事例
stopclick(event) {
console.log(‘event’, event);
event.stopPropagation();
//iOS这里不起作用,依然会冒泡触发屏幕点击事件,controls会显示/隐藏
}
感谢反馈,问题已确认,下个版本会修复此问题
nvue 长按阻止事件冒泡无效,请问一下怎么处理呢
回复 [已删除]: 解决了吗
HX 3.2.13 已修复此问题
在 iOS 的 nvue 页面中,@click.stop 确实存在事件冒泡处理不一致的问题,这通常与 nvue 的原生渲染机制有关。根据你的代码和描述,可以尝试以下解决方案:
-
使用
[@tap](/user/tap)替代@click:在 nvue 中,[@tap](/user/tap)是更推荐的事件绑定方式,它更符合原生手势处理逻辑。将@click.stop改为[@tap](/user/tap).stop可能会解决冒泡问题。 -
检查事件绑定层级:确保事件绑定在正确的元素上。在 nvue 中,某些容器组件(如
cover-view)的事件处理可能与预期不符,可以尝试将事件绑定到内层元素(如pop-item的text元素)。 -
使用
stopPropagation方法:在事件处理函数中,通过$event.stopPropagation()显式阻止冒泡。例如:<div [@tap](/user/tap)="handleTap($event)">handleTap(e) { e.stopPropagation(); // 其他逻辑 }

