uniapp @click事件冒泡问题解决示例
正文
维护uniapp项目时,遇到了点击mywitch2后触发事件冒泡,然后百度了一大堆 发现大家讲的都是 :直接在max-box的父元素上加 @tap.stop.prevent 即可解决;
示例
<view @click="mywitch1"> <view class="max-box" @tap.stop.prevent> <!-- switch --> <view @click.stop="mywitch2"></view> </view> </view>
如:
<pre style="margin: 0px; padding: 0px; transition-duration: 0.2s; transition-property: background, font-size, border-color, border-radius, border-width, padding, margin, color; overflow: auto; font-family: "Courier New", serif; font-size: 12px; overflow-wrap: break-word;"><view> <view class="max-box" @tap.stop.prevent> <!-- switch --> <view @change.stop="mywitch"></view> </view> </view></pre>
解析
如果父容器存在点击事件时,父容器是@click.stop或者是@click.native.stop仍会不能阻止view组件的冒泡
需要了解@tap和@click的区别,然后直接使用 @tap.stop 即可阻止Switch中的事件冒泡
- @click是组件被点击时触发,会有约300ms的延迟(内置处理优化了);
- @tap是手指触摸离开时触发,没有300ms的延迟,但是会有事件穿透;
编译到小程序端,@click会被转换成@tap;
<pre style="margin: 0px; padding: 0px; transition-duration: 0.2s; transition-property: background, font-size, border-color, border-radius, border-width, padding, margin, color; overflow: auto; font-family: "Courier New", serif; font-size: 12px; overflow-wrap: break-word;"><view class="max-box" @tap.stop="waimian"> <view @tap.stop="mywitch"></view> </view></pre>
以上就是uniapp @click事件冒泡问题解决示例的详细内容,更多关于uniapp @click事件冒泡的资料请关注脚本之家其它相关文章!
相关文章
JavaScript中Array.from()的超全用法详解
Array.from方法用于将两类对象转为真正的数组:类似数组的对象(array-like object)和可遍历(iterable)的对象(包括 ES6 新增的数据结构 Set 和 Map),别忘记就来讲讲他的具体用法吧2023-03-03
JavaScript异步编程之Async/Await用法完全指南
async/await是JavaScript中基于Promise的异步语法糖,使异步代码更直观易读,这篇文章主要介绍了JavaScript异步编程之Async/Await用法完全指南的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下2026-01-01
JavaScript中setTimeout使用重要的注意事项总结
setTimeout用于延迟执行函数,异步特性使其不阻塞代码,这篇文章主要介绍了JavaScript中setTimeout使用注意事项的相关资料,需注意作用域绑定、参数传递、取消定时器及精确度问题,需要的朋友可以参考下2025-05-05


最新评论