uniapp中使用.stop报错 无法使用stopPropagation?

在开发中我们常常会遇到要阻止事件冒泡的问题,加个.stop就好了。但是在组件上阻止事件冒泡会报错:$event.stoppropagation is not a function

 

 这是因为当事件添加到Vue组件上时,会变成自定义事件,如果想要触发事件的回掉函数,则必须子组件内的$emit调用才可以。

解决问题:@click.native.stop

  总结:

1.native修饰符可以让父组件接收到原生事件, 否则只能接收自定义事件(通过子组件$emit触发);

2. native修饰符只能用在组件上, 不能用在原生标签上

 
 
 
 
 

引用地址:https://blog.csdn.net/zhangjiayu88/article/details/129913705

Uniapp中,由于event对象并非浏览器的event对象,所以不支持stopPropagation方法。因此,无法直接使用@click.stop来阻止事件冒泡。\[2\]如果你希望在点击icon时不触发父级的点击事件,可以考虑以下解决方案: 1. 在icon的点击事件处理函数中,手动调用event.stopPropagation()方法来阻止事件冒泡。例如: ``` <template> <view @click="parentClick"> <u-icon @click="iconClick"></u-icon> </view> </template> <script> export default { methods: { parentClick() { console.log('父级点击事件'); }, iconClick(event) { event.stopPropagation(); console.log('icon点击事件'); } } } </script> ``` 2. 如果你希望在点击icon时不仅阻止事件冒泡,还要阻止父级的点击事件,可以在父级的点击事件处理函数中添加一个判断条件,只有当事件的target不是icon时才执行相应的逻辑。例如: ``` <template> <view @click="parentClick"> <u-icon @click="iconClick"></u-icon> </view> </template> <script> export default { methods: { parentClick(event) { if (event.target.tagName !== 'U-ICON') { console.log('父级点击事件'); } }, iconClick() { console.log('icon点击事件'); } } } </script> ``` 通过以上两种方式,你可以在Uniapp中实现在点击icon时不触发父级的点击事件。 #### 引用[.reference_title] - *1* *2* [uniapp 报错之 uview 中 u-icon 点击 阻止冒泡 @click.stop 报错](https://blog.csdn.net/YZRHANYU/article/details/127961460)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值