v-on 事件修饰符
事件修饰符:
- .stop 阻止冒泡
- .prevent 阻止默认事件
- .capture 添加事件侦听器时使用事件捕获模式
- .self 只当该事件在该元素本身时(不是子元素)触发时才回调
- .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 事件修饰符的更多相关文章
- Vue学习笔记五:事件修饰符
目录 什么是事件修饰符 没有事件修饰符的问题 HTML 运行 使用事件修饰符 .stop阻止冒泡 .prevent 阻止默认事件 .capture 添加事件侦听器时使用事件捕获模式 .self 只当事 ...
- 从零开始学 Web 之 Vue.js(一)Vue.js概述,基本结构,指令,事件修饰符,样式
大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...
- vue第八单元(组件通信 子父,父子组件通信 自定义事件 事件修饰符 v-model props验证 )
第八单元(组件通信 子父,父子组件通信 自定义事件 事件修饰符 v-model props验证 ) #课程目标 掌握使用props让父组件给子组件传参(重点) 掌握props属性的使用以及prop验证 ...
- VueJS 事件修饰符
事件修饰符 在事件处理程序中调用 event.preventDefault() 或 event.stopPropagation()是非常常见的需求.尽管我们可以在 methods 中轻松实现这点,但更 ...
- Vue.js-03:第三章 - 事件修饰符的使用
一.前言 熟悉了 Vue 的指令系统后,在实际开发中,不可避免的会使用到对于事件的操作,如何处理 DOM 事件流,成为我们必须要掌握的技能.不同于传统的前端开发,在 Vue 中给我们提供了事件修饰符这 ...
- vue_事件绑定 v-on _事件修饰符
事件绑定 v-on 传参的同时,接收事件对象 <button @click="test('111', $evnt)">哈哈</button> 事件修饰符 阻 ...
- [vue]vue v-on事件绑定(原生修饰符+vue自带事件修饰符)
preventDefault阻止默认行为和stopPropagation终止传递 event.preventDefault() 链接本来点了可以跳转, 如果注册preventDefault事件,则点了 ...
- Vue2.0学习笔记:Vue事件修饰符的使用
事件处理 如果需要在内联语句处理器中访问原生DOM事件.可以使用特殊变量$event,把它传入到methods中的方法中. 在Vue中,事件修饰符处理了许多DOM事件的细节,让我们不再需要花大量的时间 ...
- 026——VUE中事件修饰符之使用$event与$prevent修饰符操作表单
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
随机推荐
- Android SDK 的SDK Manager打不开,一闪就退,无法启动,解决方法
前一分钟还能打开,在eclipse中点了更新SDK后就启不动了 看下目录的修改时间,tool目录已经是今天的时间, 在升级过程中修改过了,给他改名 tempToolsDir 改名为tool 再尝试下启 ...
- 大话Linux内核中锁机制之内存屏障、读写自旋锁及顺序锁
大话Linux内核中锁机制之内存屏障.读写自旋锁及顺序锁 在上一篇博文中笔者讨论了关于原子操作和自旋锁的相关内容,本篇博文将继续锁机制的讨论,包括内存屏障.读写自旋锁以及顺序锁的相关内容.下面首先讨论 ...
- Spring Cloud Consul 之Greenwich版本全攻略
什么是Consul Consul是HashiCorp公司推出的开源软件,使用GO语言编写,提供了分布式系统的服务注册和发现.配置等功能,这些功能中的每一个都可以根据需要单独使用,也可以一起使用以构建全 ...
- [Oracle]记一次由sequence引发的enq sv-contention等待事件
数据库版本:11.2.0.4 RAC(1)问题现象从EM里面可以看到,在23号早上8:45~8:55时,数据库等待会话暴增,大约到了80个会话.通过查看EM的SQL信息,发现等待产生于SQL语句 se ...
- 一次tomcat的调优记录
项目本身需要上传模型,使用的是springboot1.5.3. 上传的模型比较大,下载的过程中就出现了问题(下载是su调用的java接口,其开发并非本人负责,不可更改) 问题在于,下载的时候tomca ...
- C++构造函数及成员变量
class MyClass { public: int m_age; float m_hight; MyClass() { } ~MyClass() { } MyClass(int age, floa ...
- BZOJ 2648: SJY摆棋子(K-D Tree)
Time Limit: 20 Sec Memory Limit: 128 MBSubmit: 6051 Solved: 2113[Submit][Status][Discuss] Descript ...
- linux下安装protobuf及cmake编译
一.protobuf 安装 protobuf版本:2.6.1 下载地址:https://github.com/google/protobuf/archive/v2.6.1.zip 解压之后进入目录 修 ...
- HTML5之拖拽
HTML5拖放 拖放(Drag和drop)是H5标准的组成部分 此处需具备js基础知识及其H5拖拽部分相关方法 在拖动目标上触发事件 (源元素): ondragstart - 用户开始拖动元素时触发 ...
- 技巧-如何通过hive开发平台上传csv文件
通过数据交换平台上传较大的文件时,经常会出现导入失败情况,换种方式通过新数据开发平台(stark)也可以轻松实现外部数据与hive的数据关联. --第一步.导入csv文件到hive --stark数据 ...