uniapp Switch 事件冒泡

维护uniapp项目时,遇到了点击Switch后触发事件冒泡,然后百度了一大堆  发现大家讲的都是 :直接在switch 的父元素上加 @tap.stop.prevent 即可解决;

如:

<view>
  <view class="max-box" @tap.stop.prevent>
      <!-- switch -->
      <switch @change.stop="mywitch"></switch>
  </view>
</view>

 

 

如果父容器存在点击事件时,父容器是@click.stop或者是@click.native.stop仍会不能阻止Switch 组件的冒泡

需要了解@tap和@click的区别,然后直接使用 @tap.stop  即可阻止Switch中的事件冒泡

  1. @click是组件被点击时触发,会有约300ms的延迟(内置处理优化了);
  2. @tap是手指触摸离开时触发,没有300ms的延迟,但是会有事件穿透;
  3. 编译到小程序端,@click会被转换成@tap;
<view class="max-box" @tap.stop="waimian">
  <switch @tap.stop="mywitch"></switch>
</view>
 

 

 

 

posted @ 2022-09-05 23:31  鲜克有终。  阅读(1430)  评论(0)    收藏  举报