事件修饰符:

+ .stop 阻止冒泡

+ .prevent 阻止默认事件

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

+ .self 只当事件在该元素本身(比如不是子元素)触发时触发回调

+ .once 事件只触发一次

.stop 阻止冒泡

    <!--stop  阻止冒泡  -->
<!-- 当点击button事件后,首先执行的是btnHandle事件,在执行divHandler事件 -->
<div class="box" @click="divHandler">
<!--<input type="button" value="戳他" @click.stop="btnHandler"> 阻止该事件冒泡 -->
<input type="button" value="戳他" @click="btnHandler">
</div> <script src="./lib/vue-2.4.0.js"></script>
<script> var vm=new Vue({
el:'.box',
data:{ },
methods:{
divHandler(){
alert('触发了divHandler事件');
},
btnHandler(){
alert('触发了btnHandler事件');
}
}
});

.prevent 阻止默认行为

 <!-- .prevent 阻止默认行为 -->
<!-- 当点击有问题去百度,的时候触发了linkHandler事件,同时也直接去百度了 -->
<!-- <a href="http://www.baidu.com" @click.prevent='linkHandler'>有问题去百度!</a> 阻止去打开百度行为 -->
<div class="box" @click="divHandler">
<input type="button" value="戳他" @click="btnHandler">
<a href="http://www.baidu.com" @click.prevent='linkHandler'>有问题去百度!</a>
</div> <script src="./lib/vue-2.4.0.js" ></script>
<script> var vm=new Vue({
el:'.box',
data:{ },
methods:{
divHandler(){
alert('触发了divHandler事件');
},
btnHandler(){
alert('触发了btnHandler事件');
},
linkHandler(){
alert("触发了linkHandler事件");
} }
});

.capture 实现捕获触发事件的机制

  

 <!-- .capture 实现捕获触发事件机制 -->
<!-- 当点击btn按钮会触发btnHandler事件,在触发divHandler事件,利用capture实现从外到内的事件 -->
<!-- <div class="box" @click.capture="divHandler"> 实现先divHandler在btnHandler -->
<div class="box" @click.capture="divHandler">
<input type="button" value="戳他" @click="btnHandler">
<a href="http://www.baidu.com" @click='linkHandler'>有问题去百度!</a>
</div> <script src="./lib/vue-2.4.0.js" ></script>
<script> var vm=new Vue({
el:'.box',
data:{ },
methods:{
divHandler(){
alert('触发了divHandler事件');
},
btnHandler(){
alert('触发了btnHandler事件');
},
linkHandler(){
alert("触发了linkHandler事件");
} }
});
</script>

.self 实现只有点击当前元素时候,才会触发事件处理函数

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

  

<div class="outer" @click="div2Handler">
<div class="inner" @click.self="div1Handler">
<input type="button" value="戳他" @click="btnHandler">
</div>
</div> <script>
// 创建 Vue 实例,得到 ViewModel
var vm = new Vue({
el: '#app',
data: {},
methods: {
div1Handler() {
console.log('这是触发了 inner div 的点击事件')
},
btnHandler() {
console.log('这是触发了 btn 按钮 的点击事件')
},
linkClick() {
console.log('触发了连接的点击事件')
},
div2Handler() {
console.log('这是触发了 outer div 的点击事件')
}
}
});
</script>

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

  

<a href="http://www.baidu.com" @click.prevent.once="linkClick">有问题,先去百度</a>

<script>
// 创建 Vue 实例,得到 ViewModel
var vm = new Vue({
el: '#app',
data: {},
methods: {
div1Handler() {
console.log('这是触发了 inner div 的点击事件')
},
btnHandler() {
console.log('这是触发了 btn 按钮 的点击事件')
},
linkClick() {
console.log('触发了连接的点击事件')
},
div2Handler() {
console.log('这是触发了 outer div 的点击事件')
}
}
});

Vue指令之事件修饰符的更多相关文章

  1. vue指令与事件修饰符

    一.条件渲染指令 vue中提供了两个指令可以用于判断是否要显示元素,分别是v-if和v-show. 实例: <!DOCTYPE html> <html lang="en&q ...

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

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

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

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

  4. vue中的事件修饰符

    vue提倡的是在方法中只有对数据的处理,所以提供了事件修饰符用于DOM的事件处理,常用的事件修饰符有以下几个: (1). stop:阻止冒泡(通俗讲就是阻止事件向上级DOM元素传递) 点击内层div的 ...

  5. 33、vue中的事件修饰符.stop、.prevent、.self、.capture、.once

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

  6. 怎样在 Vue 中使用 事件修饰符 ?

    Vue 中可以通过 v-on 来绑定事件监听函数, 不过事件会有许多额外情况, 比如 是否阻止冒泡 / 是否阻止重载 / 是否限制点击次数 / 是否可以通过按键触发 等等. 这时就需要使用到 事件修饰 ...

  7. vue学习(六) 事件修饰符 stop prevent capture self once

    //html <div id="app"> <div @click="divHandler" style="height:150px ...

  8. (二)咋使用VUE中的事件修饰符

    1,stop修饰符:阻止事件冒泡 首先我们要明确H5的事件是从内向外进行冒泡的,写一个简单的DEMO 当我们点击按钮时,事件从内向外冒泡,依次触发绑定的事件,控制台信息如下 现在我们在click后面添 ...

  9. 27.28. VUE学习之--事件修饰符之stop&capture&self&once实例详解

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

随机推荐

  1. Qt编写自定义控件64-垂直时间轴

    一.前言 垂直时间轴控件,主要用来描述企业发展历程大事件,或者软件版本迭代历史等,通过时间节点和事件描述来直观的展示发展的过程,一般在web网页或者app中经常看到此类控件,尤其是公司的官网关于公司部 ...

  2. 谷歌Chrome浏览器 截取网页长图方法

    Chrome浏览器: 1.按F12打开调试页面 2.按下ctrl + shift + p 3.输入命令 Capture full size screenshot 并回车 4.浏览器会自动截取整个网页内 ...

  3. Linux记录-centos升级python3

    yum install zlib-devel bzip2-devel openssl-devel ncurses-devel -yyum install xz -ywget https://www.p ...

  4. MySql存储过程常用的函数

    字符串类 CHARSET(str) //返回字串字符集CONCAT (string2 [,... ]) //连接字串INSTR (string ,substring ) //返回substring首次 ...

  5. Linux系统调优——CPU(一)

    (1).系统调优思路 性能优化就是找到系统处理中的瓶颈以及去除这些的过程,性能优化其实是对OS 各子系统达到一种平衡的定义.具体步骤如下: 1. 系统的运行状况:  CPU -> MEM  -& ...

  6. Django Model 定义语法

    简单用法 from django.db import models class Person(models.Model): first_name = models.CharField(max_leng ...

  7. echars 3.0 去掉柱状图阴影用什么属性

    原图展示: 效果图展示: 在代码中注释掉这段 // tooltip : { // trigger: 'axis', // axisPointer : { // 坐标轴指示器,坐标轴触发有效 // ty ...

  8. @media 适配兼容

    /* 兼容iphone4/4s */ @media (device-height:480px) and (-webkit-min-device-pixel-ratio:2){ } /* 兼容iphon ...

  9. PMP备考笔记--1.1

    题型 200道中英文单选题 基本概念题(%10) 过程工具/技术和输入输出题ITTO (%10) 情景题(%70) 计算题(3-5道题) 图 pmp四大挑战 试卷100页,题干长,阅读量大,考试4个小 ...

  10. python 爬虫实例(一)

    一个简单的爬虫工程 环境: OS:Window10 python:3.7 安装一些库文件 pip install requests pip install beautifulsoup4 pip ins ...