事件修饰符:

 
  1. .stop 阻止冒泡
  2. .prevent 阻止默认事件
  3. .capture 添加事件侦听器时使用事件捕获模式
  4. .self 只当该事件在该元素本身时(不是子元素)触发时才回调
  5. .once 事件只触发一次

一、.stop 修饰符,阻止时间冒泡:

1、未加.stop事件修饰符:

CSS部分:

     <style>
.inner {
background-color: green;
height:100px;
padding:20px;
} .outer {
padding: 10px;
background-color: yellow;
}
</style>

HTML部分:

<div id="app">
<div class="outer" @click="outerDivHandler">
<div class="inner" @click="innerDivHandler">
<button @click="btnHandler">点我</button>
</div>
</div>
</div>

JS部分:

   var app = new Vue({
el: "#app",
data() {
},
methods: {
btnHandler() {
console.log("btnHandler事件触发了");
},
innerDivHandler() {
console.log("innerDivHandler事件触发了");
},
outerDivHandler() {
console.log("outerDivHandler事件触发了");
},
},
});

点击按钮时,输出结果,点击按钮时分别触发了父级的点击事件。

2、添加.top属性修饰符后

     <div id="app">
<div class="outer" @click="outerDivHandler">
<!-- outerDiv -->
<div class="inner" @click="innerDivHandler">
<!-- button的点击事件添加了属性修饰符【.top】 -->
<button @click.stop="btnHandler">点我</button>
</div>
</div>
</div>

再点击button,结果,只触发了button上的事件,父级元素绑定的点击事件并没有触发。

二、.prevent修饰符,阻止默认事件

阻止元素的默认事件发生。

<a href="http://www.baidu.com" @click="aHandler">百度一下</a>

在浏览器上点击 百度一下 会自动跳转到百度页面,当然aHandler事件也会触发,那么怎么阻止a跳转到百度页面呢?在@click后面加上.prevent属性修饰符即可

 <a href="http://www.baidu.com" @click.prevent="aHandler">百度一下</a>

再点击 百度一下  发现只执行了aHandler事件,并未跳转。

三、.capture 添加事件侦听器时使用事件捕获模式

1、未添加.capture修饰符:

  <div class="inner" @click="innerDivHandler">
<button @click="btnHandler">点我</button>
</div>

结果:

2、添加了.capture后

 <div class="inner" @click.capture="innerDivHandler">
<button @click="btnHandler">点我</button>
</div>

结果:

四、.self 修饰符,只有事件发生在自己身上时才触发

     <div class="inner"  @click.self="innerDivHandler">
<button @click="aHandler">点我</button>
</div>

点击按钮,只触发了aHandler事件。

点击绿色区域,只触发了div绑定的事件。

注意:.self只会阻止自己身上的冒泡事件发生,如果上述div还有兄弟元素也绑定了事件,未加.self修饰符,按钮也未加.stop修饰符,那么点击按钮,依然会触发其兄弟元素的事件。

五、.once 事件只触发一次,第二次点击就没得效果了。

<button @click.once="btnHandler">点我</button>

v-on 事件修饰符的更多相关文章

  1. Vue学习笔记五:事件修饰符

    目录 什么是事件修饰符 没有事件修饰符的问题 HTML 运行 使用事件修饰符 .stop阻止冒泡 .prevent 阻止默认事件 .capture 添加事件侦听器时使用事件捕获模式 .self 只当事 ...

  2. 从零开始学 Web 之 Vue.js(一)Vue.js概述,基本结构,指令,事件修饰符,样式

    大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...

  3. vue第八单元(组件通信 子父,父子组件通信 自定义事件 事件修饰符 v-model props验证 )

    第八单元(组件通信 子父,父子组件通信 自定义事件 事件修饰符 v-model props验证 ) #课程目标 掌握使用props让父组件给子组件传参(重点) 掌握props属性的使用以及prop验证 ...

  4. VueJS 事件修饰符

    事件修饰符 在事件处理程序中调用 event.preventDefault() 或 event.stopPropagation()是非常常见的需求.尽管我们可以在 methods 中轻松实现这点,但更 ...

  5. Vue.js-03:第三章 - 事件修饰符的使用

    一.前言 熟悉了 Vue 的指令系统后,在实际开发中,不可避免的会使用到对于事件的操作,如何处理 DOM 事件流,成为我们必须要掌握的技能.不同于传统的前端开发,在 Vue 中给我们提供了事件修饰符这 ...

  6. vue_事件绑定 v-on _事件修饰符

    事件绑定 v-on 传参的同时,接收事件对象 <button @click="test('111', $evnt)">哈哈</button> 事件修饰符 阻 ...

  7. [vue]vue v-on事件绑定(原生修饰符+vue自带事件修饰符)

    preventDefault阻止默认行为和stopPropagation终止传递 event.preventDefault() 链接本来点了可以跳转, 如果注册preventDefault事件,则点了 ...

  8. Vue2.0学习笔记:Vue事件修饰符的使用

    事件处理 如果需要在内联语句处理器中访问原生DOM事件.可以使用特殊变量$event,把它传入到methods中的方法中. 在Vue中,事件修饰符处理了许多DOM事件的细节,让我们不再需要花大量的时间 ...

  9. 026——VUE中事件修饰符之使用$event与$prevent修饰符操作表单

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

随机推荐

  1. linux下安装php扩展amqp

    1 安装扩展必要依赖 rabbitmq-c 安装包地址:https://github.com/alanxz/rabbitmq-c/releases wget -c https://github.com ...

  2. Java中的类与对象

    一.类与对象的概念 1.类:类是一组相同属性.方法的对象的集合:对象是类的具体化. 2.对象具有类所有的特征,类拥有的,对象就拥有. 3.类与对象他们的关系是相对的. 类有什么特点 1) 类是对象的类 ...

  3. K3CLOUD开发-动态表单树形单据体实现银行交易对账

    背景:系统手机开单生成销售单据,通过银行pos机收款,系统收款流水与银行流水可能存在差异,所以通过获取银行接口,获取消费信息自动插入到生产系统数据库,开发对账报表,实现差异汇总! 展示效果如下: 开发 ...

  4. activemq的高级特性:消息存储持久化

    activemq的高级特性之消息存储持久化 有基于文件的,数据库的,内存的.默认的是基于文件的,在安装目录/data/kahadb.在conf/activemq.xml文件中. <persist ...

  5. mysql数据库的系统操作基本操作

    本文主要总结并记录一下简单且常用的mysql 在cmd 窗口中操作的基本命令 命令停止mysql 数据库服务 1.(cmd)命令行 启动:net start mysql 停止:net stop mys ...

  6. jQuery的$.get()函数不执行以及php端报错Uncaught Error: Call to a member function bind_param() on boolean in...

    写了一个html,用到了jQuery,发现没有按照预期的结果显示,最后定位到是$.get()函数没有运行 调试过程为: 在页面右击查看元素,到网络那一栏,找到类型为json的那个包点击,然后查看响应, ...

  7. WebGl 二维纹理贴图(矩形)

    效果: 代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="U ...

  8. Ajax中异步与同步的区别

    同步可以解决,只有前一个请求结束后,当前请求才会发起.

  9. Docker Toolbox下配置国内镜像源-阿里云加速器

    Docker machine安装 Docker Machine是一个简化Docker安装的命令行工具,通过一个简单的命令行即可在相应的平台上安装Docker,比如VirtualBox. Digital ...

  10. elasticsearch_dsl 的nested

    在工作中会碰到这样的一个需求,mapping中定义的类型是nested { "judgement":{ "mappings":{ "content&q ...