vue2 事件修饰符

.stop 阻止冒泡
.prevent 阻止默认事件
.capture 掠夺前一个事件响应的优先级
.self 只当事件在该元素本身触发时触发回调,只与关联的对象有关,与前后无关
.once事件只触发一次

.capture的优先级先于.stop,会先进行.capture中的事件才会进入到stop
div @click.capture="" id=“1”
div @click="" id= “2”
div @click.stop="" id=“3”
当id3开始准备响应时,id1会夺取优先级 点击id3 响应顺序id1–>id3 stop停止

@click.stop 事件冒泡触发停止于此

<a href = " " @click.prevent 点击只触发事件,不会发生跳转

@click.capture 先于前一个点击事件响应
按钮点击,capture添加的事件先发出响应,然后才是按钮的事件响应

@click.self 只是本身不参与冒泡响应

@click.once 只触发一次,可搭配使用

@click.self.once 与顺序无关

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>

    <script src="./lib/vue.min.js"></script>

    <style>
      .inner{
          height: 150px;
          background-color: cadetblue;
      }

    </style>
</head>
<body>
    <div id="app" @click="divHandler">

        <div class="inner" @click.capture="div1Handler">
            <input type="button" value="点点1" @click="btnHandler">

            <a href="http://www.baidu.com" @click.prevent="btnHandler">百度一下</a>
        
            <input type="button" value="点点2" @click="btnHandler">
        </div>

        <div class="inner" @click.stop="div1Handler">
          
                <input type="button" value="点点3" @click="btnHandler">
            </div>
            <div class="inner" @click.self="div1Handler">
          
                    <input type="button" value="点点4" @click="btnHandler">
                </div>
    

    </div>
    
    <script>
       var vm = new Vue({

           el:'#app',
           data:{
               msg:'123'
           },
           methods:{
              div1Handler:function(){
                   console.log('div触发了警报')
               },
              btnHandler:function(){
                console.log('btn触发了警报')
               },
               divHandler:function(){
                   console.log('老大触发了警报')
               }
           }
       })
    
    </script>

</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值