Vue 事件处理 -- 事件修饰符(prevent、stop、capture、self、once)
1. 事件修饰符
Vue中的事件修饰符:
- prevent:阻止默认事件(常用);
- stop:阻止事件冒泡(常用);
- once:事件只触发一次(常用);
- capture:使用事件的捕获模式;
- self:只有event.target是当前操作的元素时才触发事件;
示例代码:
<!DOCTYPE html>
<html><head><meta charset="UTF-8" /><title>事件修饰符</title><!-- 引入Vue --><script type="text/javascript" src="../js/vue.js"></script><style>* {margin-top: 20px;}.demo1 {height: 50px;background-color: skyblue;}.box1 {padding: 5px;background-color: skyblue;}.box2 {padding: 5px;background-color: orange;}.list {width: 200px;height: 200px;background-color: peru;overflow: auto;}li {height: 100px;}</style>
</head><body><!-- Vue中的事件修饰符:1.prevent:阻止默认事件(常用);2.stop:阻止事件冒泡(常用);3.once:事件只触发一次(常用);4.capture:使用事件的捕获模式;5.self:只有event.target是当前操作的元素时才触发事件;--><!-- 准备好一个容器--><div id="root"><h2>欢迎来到{{name}}学习</h2><!-- 阻止默认事件(常用) --><a href="http://www.atguigu.com" @click.prevent="showInfo">点我提示信息</a><!-- 阻止事件冒泡(常用) --><div class="demo1" @click="showInfo"><button @click.stop="showInfo">点我提示信息</button><!-- 修饰符可以连续写 先写的先起作用: 这样写就是先阻止默认行为后阻止冒泡--><!-- <a href="http://www.atguigu.com" @click.prevent.stop="showInfo">点我提示信息</a> --></div><!-- 事件只触发一次(常用) --><button @click.once="showInfo">点我提示信息</button><!-- 使用事件的捕获模式 --><div class="box1" @click.capture="showMsg(1)">div1<div class="box2" @click="showMsg(2)">div2</div></div><!-- 只有event.target是当前操作的元素时才触发事件; --><div class="demo1" @click.self="showInfo"><button @click="showInfo">点我提示信息</button></div></div>
</body><script type="text/javascript">Vue.config.productionTip = false //阻止 vue 在启动时生成生产提示。new Vue({el: '#root',data: {name: '尚硅谷'},methods: {showInfo(e) {alert('同学你好!')// console.log(e.target)},showMsg(msg) {console.log(msg)}}})
</script></html>
1.1 prevent:阻止默认事件(常用)
html:
<!-- 阻止默认事件(常用) --><a href="http://www.atguigu.com" @click.prevent="showInfo">点我提示信息</a>
js:
运行效果:
a标签的默认有跳转到href的行为,我们把默认行为禁用后,就不会跳转页面
补充:
如果不使用Vue指令,那么怎么屏蔽事件的默认行为呢?
1.2 stop:阻止事件冒泡(常用)
html:
<!-- 阻止事件冒泡(常用) --><div class="demo1" @click="showInfo"><button @click.stop="showInfo">点我提示信息</button><!-- 修饰符可以连续写 --><!-- <a href="http://www.atguigu.com" @click.prevent.stop="showInfo">点我提示信息</a> --></div>
js:
运行结果:
如果不组织事件冒泡:
如果不使用Vue指令,那么怎么阻止事件冒泡呢?
1.3 once:事件只触发一次(常用)
html:
<!-- 事件只触发一次(常用) --><button @click.once="showInfo">点我提示信息</button>
js:
运行结果:
1.4 capture:使用事件的捕获模式
html:
<!-- 使用事件的捕获模式 --><div class="box1" @click.capture="showMsg(1)">div1<div class="box2" @click="showMsg(2)">div2</div></div>
js:
运行结果:
关闭事件捕获:
分析原因:
1.5 self:只有event.target是当前操作的元素时才触发事件
html:
<!-- 只有event.target是当前操作的元素时才触发事件; --><div class="demo1" @click.self="showInfo"><button @click="showInfo">点我提示信息</button></div>
js:
运行结果:
因为event.target不是当前操作的元素,所有没有触发事件,这个在一定程度上面也可以阻止冒泡
如果不加指令会怎么样?
发生了事件冒泡
Vue 事件处理 -- 事件修饰符(prevent、stop、capture、self、once)相关推荐
- Vue中事件修饰符与键盘事件
目录 事件修饰符 prevent:阻止默认事件 stop:阻止事件冒泡 once:事件只触发一次 capture:使用事件的捕获模式 self:与当前事件一致时触发 passive:事件的默认行为立即 ...
- 027——VUE中事件修饰符:stop prevent self capture
<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8" ...
- Vue数据代理+事件处理+事件修饰符的作用+计算属性的使用,尚硅谷Vue系列教程学习笔记(2)
尚硅谷Vue系列教程学习笔记(2) 参考课程:<尚硅谷Vue2.0+Vue3.0全套教程丨vuejs从入门到精通> 参考链接:https://www.bilibili.com/video/ ...
- 026——VUE中事件修饰符之使用$event与$prevent修饰符操作表单
<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8" ...
- 五、伊森商城 前端基础-Vue v-on 事件修饰符 按键修饰符 v-for v-if 和v-show v-else和v-else-if p24
目录 1.v-on 2.事件修饰符 3.按键修饰符 3.1.组合按钮 4.v-for 5.v-if和v-show 6.v-else 和 v-else-if 6.1.v-if结合v-for来时用 1.v ...
- 用vue的事件修饰符阻止冒泡
用mousemove事件举例 1.传统做法: 定义一个阻止冒泡的函数stop,形参为事件e,执行e.stopPropagation(), 在标签上添加v-on:mousemove="stop ...
- Vue事件修饰符(prevent,stop,once,capture,self)
1.Vue的事件修饰符: 1.prevent 阻止默认事件(常用) 2.stop:阻止默认冒泡(常用) 3.once:事件只触发一次(常用) 4.capture:使用事件的捕获模式 5.self:只有 ...
- vue学习:事件传递(冒泡和捕获),事件委托,jquery中的事件委托,$event 获取元素,vue事件修饰符
事件传递 ----冒泡和捕获 DOM事件标准定义了两种事件流,这两种事件流分别是捕获和冒泡. 和许多Web技 术一样,在它们成为标准之前,Netscape和微软各自不同地实现了它们.Netscape选 ...
- vue判断是否双击_vue双击事件2.0事件监听(点击-双击-鼠标事件)和事件修饰符操作...
Vue 事件处理方法 可以用 v-on 指令监听 DOM 事件,并在触发时运行一些 JavaScript 代码. v-on:click 单击事件 + + - - v-on:dblclick 双击事件 ...
- Vue2.0学习笔记:Vue事件修饰符的使用
事件处理 如果需要在内联语句处理器中访问原生DOM事件.可以使用特殊变量$event,把它传入到methods中的方法中. 在Vue中,事件修饰符处理了许多DOM事件的细节,让我们不再需要花大量的时间 ...
最新文章
- 在国内安装Pytorchy以及遇到的问题
- virtualBox中的ubuntu共享文件夹
- oracle 如何表分析,ORACLE的表分析策略
- 涨跌因子计算器下载哪里下载_微信爱情指数计算器整蛊app下载_爱情指数计算器整蛊测试下载...
- 数学建模学习笔记(十)——时间序列模型
- 初学编程,你必须要打牢的几根“支柱”,地基越稳,成就越高!
- C++工作笔记-Windows下查找窗口句柄并让其显示在桌面
- png免扣半透素材,让你轻松设计出漂亮的海报!
- es 安装 ik 分词器
- ubuntu网络正常连接但无法上网
- Delphi基础教程第一季
- html怎么设置文字居中对齐
- Python实现圣诞树、打包exe过程和遇到的问题
- 网页中LRC歌词同步显示
- html/css--flex布局
- 转贴:谁说我会画板?
- 工程监测多通道振弦模拟信号采集仪VTN的$字符串通讯协议
- 树莓派魔镜MagicMirror —— 8 MagicMirror基本模块设计
- 在VSCode中自定义文件类型和扩展名关联
- NISP和CISP中渗透测试的思路是什么?
热门文章
- 利用C++,设置输入某年某月某日,判断这一天是这一年的第几天。
- 计算机限制无线网络,无线网络连接受限制怎么办 无线网络连接受限解决方法【图文】...
- C# 解析种子文件(bt文件)
- sping循环依赖:but has eventually been wrapped. This means that said other beans do not use the final
- 威联通(NAS)搭建个人音乐中心
- 一个女留学生在美国的七年
- JAVA+=运算程序诡异事件
- SPKO的Laker分析(一)
- python变现实现新浪微博登陆
- 《笨办法学python》第39课—— 列表的操作