使用@tap.stop阻止事件继续传播
时间:2022-09-24 10:20:24|栏目:vue|点击: 次
@tap.stop阻止事件继续传播
在uni-app开发当中,难免会遇到外层view嵌套内层view,又同时都含有点击事件,这样就会起冲突。
为了防止事件的继续传播我们就会用到事件修饰符.stop
先看代码:
<template> <view class="wai" @tap="waiTab"> <h5>外面</h5> <view class="nei" @tap="neiTab"> <h5>内部</h5> </view> </view> </template>
<script> export default { data() { return { } }, methods: { waiTab(){ console.log("点击了外边") }, neiTab(){ console.log("点击了内部") } } } </script>
<style> .wai{ width: 100%; height: 100px; display: flex; justify-content: center; background-color: #0000FF; } .nei{ display: flex; justify-content: center; align-items: center; width: 50px; height: 50px; background-color: #00CE47; } </style>
效果是这样的:
当我们点击外部时:
当我们点击内部时:
解决方法:只需在@tap后面加.stop就可以阻止事件继续传播
<view class="wai" @tap.stop="waiTab"> <h5>外面</h5> <view class="nei" @tap.stop="neiTab"> <h5>内部</h5> </view> </view>
uniapp+uview @tap.stop="stop"组织冒泡失效bug
阻止事件冒泡时,直接在需要使用的方法上加.stop无效
需要在外层加一层标签 <view @tap.stop=“stop”>