Vue指令之事件修饰符
事件修饰符:
+ .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指令之事件修饰符的更多相关文章
- vue指令与事件修饰符
一.条件渲染指令 vue中提供了两个指令可以用于判断是否要显示元素,分别是v-if和v-show. 实例: <!DOCTYPE html> <html lang="en&q ...
- [vue]vue v-on事件绑定(原生修饰符+vue自带事件修饰符)
preventDefault阻止默认行为和stopPropagation终止传递 event.preventDefault() 链接本来点了可以跳转, 如果注册preventDefault事件,则点了 ...
- 从零开始学 Web 之 Vue.js(一)Vue.js概述,基本结构,指令,事件修饰符,样式
大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...
- vue中的事件修饰符
vue提倡的是在方法中只有对数据的处理,所以提供了事件修饰符用于DOM的事件处理,常用的事件修饰符有以下几个: (1). stop:阻止冒泡(通俗讲就是阻止事件向上级DOM元素传递) 点击内层div的 ...
- 33、vue中的事件修饰符.stop、.prevent、.self、.capture、.once
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 怎样在 Vue 中使用 事件修饰符 ?
Vue 中可以通过 v-on 来绑定事件监听函数, 不过事件会有许多额外情况, 比如 是否阻止冒泡 / 是否阻止重载 / 是否限制点击次数 / 是否可以通过按键触发 等等. 这时就需要使用到 事件修饰 ...
- vue学习(六) 事件修饰符 stop prevent capture self once
//html <div id="app"> <div @click="divHandler" style="height:150px ...
- (二)咋使用VUE中的事件修饰符
1,stop修饰符:阻止事件冒泡 首先我们要明确H5的事件是从内向外进行冒泡的,写一个简单的DEMO 当我们点击按钮时,事件从内向外冒泡,依次触发绑定的事件,控制台信息如下 现在我们在click后面添 ...
- 27.28. VUE学习之--事件修饰符之stop&capture&self&once实例详解
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
随机推荐
- 转 zabbix 优化方法 以及数据库查询方法 两则
###########sample 1 https://www.cnblogs.com/hanshanxiaoheshang/p/10304672.html (不错) 如何从zabbix server ...
- 《Learning a Discriminative Feature Network for Semantic Segmentation》解读
旷世18年的CVPR,论文链接:https://arxiv.org/abs/1804.09337 Motivation:针对分割中的“类内不一致”和“类间一致性”的两大问题,设计了结合Smooth n ...
- 利用Python来远程控制肉鸡自由操作,下一个黑客大佬就是你
利用Python来远程控制肉鸡自由操作,下一个黑客大佬就是你 直接开始主题 Server:控制端 Client:被控端 具体实现 然后当有肉鸡连接的时候我们需要获得肉鸡的socket,并且记录下来,以 ...
- CentOS8安装docker
参考:https://www.cnblogs.com/ding2016/p/11592999.html 一,安装环境查看 二,下载docker-ce的repo curl https://downloa ...
- Swoole练习 websocket
WEBSOCKET 服务端代码 //创建websocket服务器对象,监听0.0.0.0:9502端口 $ws = new swoole_websocket_server("0.0.0.0& ...
- eNSP上VLAN的基础的配置及access接口
本实验模拟公司内部,为不同的部门划分不同的VLAN ,形成的不同广播域,来保护信息的安全,拓扑图如下所示
- QT qml TreeView展示数据结构于界面
Class QAbstractItemModel: 使用QML的TreeView类来展示树状的结构,对应的是QT的Model/View模型.这个model是一个数据模型,要为TreeView提供一个 ...
- Bayesian machine learning
from: http://www.metacademy.org/roadmaps/rgrosse/bayesian_machine_learning Created by: Roger Grosse( ...
- (二)linux 学习 -- 探究操作系统
The Linux Command Line 读书笔记 - 部分内容来自 http://billie66.github.io/TLCL/book/chap04.html 文章目录 ls 命令进阶 `l ...
- stm32之中断响应优先级
1)中断响应分为:自然优先级.抢占优先级.响应优先级. 2)抢占优先级和响应优先级,其实是一个中断所包含的两个优先级,其中前者是抢占优先级之间的级别划分,后者是相同抢占优先级的优先级别的划分. 中断A ...