Vue中@click.stop和@click.prevent实例详解

教程下载地址: 网赚博客https://www.piaodoo.com/创业项目排行榜前十名https://www.piaodoo.com/


一、@click.stop(阻止事件冒泡)

@click.stop:阻止事件冒泡,即阻止点击事件从子组件向父组件传播。

案例:我们在父元素中添加了一个click事件A,并且在其下的子元素中也添加了一个click事件B。

这时我想点击子元素触发子元素的点击事件,但实际上会先触发子组件的事件,然后触发父组件的事件。

<div class='handle-box' @click="clickBox">
		<div @click="handleClick('新增')"><text>新增</text></div>
		<div @click="handleClick('修改')"><text>修改</text></div>
		<div @click="handleClick('删除')"><text>删除</text></div>
</div>

需要使用阻止事件冒泡(也即阻止点击事件继续传播)来解决此问题,

将子组件中的@click改为@click.stop即可:

<div class='handle-box' @click="clickBox">
		<div @click.stop="handleClick('新增')"><text>新增</text></div>
		<div @click.stop="handleClick('修改')"><text>修改</text></div>
		<div @click.stop="handleClick('删除')"><text>删除</text></div>
</div>

二、@click.prevent(阻止事件的默认行为)

@click.prevent:阻止事件的默认行为。它会阻止触发dom的原始事件,而只执行我们自定义的事件。

例如:在代码里写入一个<a>标签,在点击<a>标签时,会默认触发一次跳转,跳转到目标URL:

<div>
	<a href="http://www.baidu.com" rel="external nofollow"  rel="external nofollow"  target='_blank'>百度</a>
</div>

但如果我们不想让它跳转,而是在点击<a>标签时执行我们的自定义方法,那就需要用到@click.prevent啦!用法如下:

<div>
	<a href="http://www.baidu.com" rel="external nofollow"  rel="external nofollow"   target='_blank' @click.prevent='handleClick('修改')'>百度</a>
</div>

这时再点击<a>标签,就不会跳转到目标URL啦,而是会执行我们自定义的handleClick(‘修改’)事件。

附:Vue @click.stop阻止事件向祖先元素传递(事件冒泡)

任何事件都不触发

<template>
  <div @click="fun">
    <div @click.stop>
      <!--子div-->
    </div>
  </div>
</template>

<script>
export default {
methods: {
fun() {
// 点击父div时执行的功能
console.log(‘单击了父div’);
},
},
}
</script>

不触发父级事件,触发属于自己的事件

<template>
  <div @click="doSomething">
    <button @click.stop="doSomethingElse">不会触发父级元素的点击事件</button>
  </div>
</template>
<script>
export default {
  methods: {
    doSomething() {
      console.log('doSomething')
    },
    doSomethingElse() {
      console.log('doSomethingElse')
    }
  }
}
</script>

总结

到此这篇关于Vue中@click.stop和@click.prevent详解的文章就介绍到这了,更多相关Vue中@click.stop和@click.prevent内容请搜索网赚博客https://www.piaodoo.com/以前的文章或继续浏览下面的相关文章希望大家以后多多支持网赚博客https://www.piaodoo.com/!

                        友情连接:  

茂名一技http://www.szsyby.net/


茂名一技http://www.enechn.com/


美文集http://www.tpyjn.cn/


手游排行前十名http://www.bjkhrx.com/


蔚来汽车http://www.weilaiqiche.cn/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值