el-row的@click.stop并没有阻止事件冒泡,还是会触发外层div的点击事件

当点击一个元素时,会进行冒泡,一直触发到父元素。可以通过给click加stop来阻止事件冒泡,如:@click.stop=“search_maf_version(version)”,但是发现给el-row加上@click.stop并没有生效,还是会触发外部的点击事件
我的问题代码为:

<div @click="search_maf(item)">
     <el-row v-for="version in item.version_list" :key="version.id" :class="{ 'blue-background': versionItem === version }" @click.stop="search_maf_version(version)">
              {{ version.version }}
     </el-row>
</div>

当我点击el-row时,还是会触发search_maf(item),而不会触发search_maf_version(version)
原因:在使用 Vue.js 框架的 Element UI 库中,对于一些组件,如 el-row ,可能不能直接通过在其上添加 @click 来绑定原生的 click 事件,因为这些组件可能没有实现 click 事件的派发。
解决:在 el-row 组件内部再套一个 native HTML 元素(如 div),然后在该元素上绑定 click 事件

<div @click="search_maf(item)">
	<el-row v-for="version in item.version_list" :key="version.id" :class="{ 'blue-background': versionItem === version }">
	    <div @click.stop="search_maf_version(version)">
	        {{ version.version }}
	    </div>
	</el-row>
</div>

这样就可以只触发search_maf_version(version),而不会触发search_maf(item)啦,大功告成!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值