【Vue笔记】事件修饰符

40 篇文章 2 订阅
12 篇文章 0 订阅

Vue中事件修饰符:

  • .stop 阻止冒泡
  • .prevent 阻止默认事件
  • .capture 使用事件捕获机制
  • .self只有当事件在该元素本身(比如不是在子元素)触发时触发回调
  • .once 事件只触发一次

css代码如下:

.outer{
    padding:20px;
    background:blue;
}
.inner{
   width:250px;
    height: 200px;
    background: red;
}

js代码如下:


//创建vm实例,得到viewModel
let vm=new Vue({
    el:'#app',
    data:{

    },
    methods:{
        outerHandler(){
            console.log("这是outer div触发事件");
        },
        innerHandler(){
            console.log("这是inner div触发事件");
        },
        btnHandler(){
            console.log("这是btn 按钮触发事件");
        },
        linkHandler(){
            console.log("这是a 链接触发事件");
        }
    }
})

html代码如下:

使用.stop 阻止冒泡行为

<div id="app">
    <!-- 使用.stop 阻止冒泡行为 -->
      <div class="inner" @click="innerHandler">
          <input type="button" value="click me" @click.stop="btnHandler">
      </div> 
</div>   

在这里插入图片描述
使用 .prevent 阻止默认行为

<div id="app">
  <!-- 使用 .prevent 阻止默认行为 -->
  <a href="http://www.baidu.com" @click.prevent="linkHandler">点击一下去百度</a>
</div>  

在这里插入图片描述
使用 .capture 实现捕获触发机制

<div id="app">
  <!-- 使用 .capture  实现捕获触发机制 -->
 <div class="inner" @click.capture="innerHandler">
                <input type="button" value="click me" @click.stop="btnHandler">
 </div>  
</div> 

在这里插入图片描述
使用 .self 实现只有点击当前元素的时候才会触发事件处理函数

<div id="app">
  <!-- 使用 .self 实现只有点击当前元素的时候才会触发事件处理函数 -->
  <div class="inner" @click.self="innerHandler">
       <input type="button" value="click me" @click.stop="btnHandler">
  </div>
 </div> 

在这里插入图片描述

使用 .once 只触发一次事件处理函数

<div id="app">
    <!-- 使用 .once 只触发一次事件处理函数 -->
   <a href="http://www.baidu.com" @click.prevent.once="linkHandler">点击一下去百度</a> 
</div> 

在这里插入图片描述
在这里插入图片描述

.self 只会阻止自己身上冒泡行为的触发,并不会真正阻止冒泡行为

<div id="app">
      <!-- .self 只会阻止自己身上冒泡行为的触发,并不会真正阻止冒泡行为 -->
   <div class="outer" @click="outerHandler">
       <div class="inner" @click.self="innerHandler">
           <input type="button" value="click me" @click="btnHandler">
       </div>
    </div>
</div> 

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值