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 ...
随机推荐
- mysql 1045
1.sudo gedit /etc/my.cnf 2.加入 skip-grant-tables 3.直接登录,输密码时回车 mysql -u root -p 4.修改密码 use mysql; upd ...
- 【WebView】Android WebView中的Cookie操作
Hybrid App(混合式应用)的开发过程中少不了与WebView的交互,在涉及到账户体系的产品中,包含了一种登录状态的传递.比如,在Native(原生)界面的登录操作,进入到Web界面时,涉及到账 ...
- auto和decltype的用法总结
一, auto 1, auto的作用 一般来说, 在把一个表达式或者函数的返回值赋给一个对象的时候, 我们必须要知道这个表达式的返回类型, 但是有的时候我们很难或者无法知道这个表达式或者函数的 ...
- Java Audio : Playing PCM amplitude Array
转载自:http://ganeshtiwaridotcomdotnp.blogspot.com/2011/12/java-audio-playing-pcm-amplitude-array.html ...
- Vue学习笔记十一:按键修饰符和自定义指令(钩子函数)
目录 padStart:补位 按键修饰符 Vue提供的按键修饰符 自定义按键修饰符 自定义指令 自定义指令的使用 钩子函数 钩子函数参数 使用钩子函数的bingding参数 私有自定义指令 钩子函数的 ...
- 静态站点生成器-html-markdown-hugo
推荐指数:
- 最新 迅游科技java校招面经 (含整理过的面试题大全)
从6月到10月,经过4个月努力和坚持,自己有幸拿到了网易雷火.京东.去哪儿.迅游科技等10家互联网公司的校招Offer,因为某些自身原因最终选择了迅游科技.6.7月主要是做系统复习.项目复盘.Leet ...
- 爬虫存储介质之MongoDB存储
常用数据库 mongoDB4.0: 下载:https://www.mongodb.com/ windows安装.Linux安装见: https://www.runoob.com/mongodb/mon ...
- Beta冲刺(3/4)
队名:秃头小队 组长博客 作业博客 组长徐俊杰 过去两天完成的任务:学习了很多东西 Github签入记录 接下来的计划:继续学习 还剩下哪些任务:后端部分 燃尽图 遇到的困难:自己太菜了 收获和疑问: ...
- MApp_ZUI_CTL_MarqueeTextWinProc字串滚动
/////////////////////////////////////////////////////////////////////////////// /// global MApp_ZUI_ ...