vue学习(六) 事件修饰符 stop prevent capture self once
//html
<div id="app">
<div @click="divHandler" style="height:150px,background-color:darkcyan">
<input type="button" value="点击" @click="btnHandler">
</div> <a href="http://www.bilibili.com" @click="linkClick">跳转到bilibili</a> <div @click.capture="divClick" style="hight:150px,background-color:grey">
<input type="button" value="按一下" @click="buttonClick">
</div> <a href="http://weibo.com" @click.once="weibo">连接到微博</a>
</div>
//script
<script>
var vm = new Vue({
el:'app',
data:{
msg:'点击一下'
},
methods:{//methods中定义了当前vue实例中所有可用的方法
divHandler:function(){
console.log('触发了div的点击事件')
},
btnHandler(){
console.log('触发了btn的点击事件')
},
linkClick(){
console.log('触发了链接的点击事件')
},
divClick(){
console.log('触发了div点击事件')
},
buttonClick(){
console.log('触发了button点击事件')
}
}
})
</script>
简介:
.stop 阻止冒泡
.prevent 阻止默认事件
.capture 添加事件监听器时使用事件捕获方式
.self 只当事件在该元素本身(比如不是子元素)触发时触发回调
.once 事件只触发一次
说明:
点击按钮,控制台会打印 触发了btn的点击事件 触发了div的点击事件 默认是冒泡机制,里边的btn被外边的div包裹着,点击里边的,事件会一层一层往外冒,先调用内层的click在调用外层的click。
如果想阻止冒泡,需要给按钮的click事件加上.stop 格式是 <input type="button" value="点击" @click.stop="btnHandler">,执行的效果就是 只会出发btn的点击事件不会触发外层div的点击事件
当我们点击跳转去bilibili的时候,控制台会打印 触发了链接的点击事件 页面跳转到B站 会跳转。如果我们不想让跳转,可以使用.prevent组织默认事件 格式是 <a href="http://www.bilibili.com" @click.prevent="linkClick"></a>
给外层div的click时间加上.capture 点击按钮的作用效果,就和冒泡相反了 先执行外层div的click事件,在执行内层button的click时间,控制台 触发了div点击事件 触发了button点击事件
如果仅仅想通过点击div来触发div的点击事件,需要给div的click加上.self 格式是<div @click.self="divClick"></div> 其他的不管是冒泡还是捕获 通通都不执行div的点击事件
给click加上once,该点击事件只会被触发一次,不会触发第二次
事件修饰符是可以串联用的@click.prevent.once
vue学习(六) 事件修饰符 stop prevent capture self once的更多相关文章
- 27.28. VUE学习之--事件修饰符之stop&capture&self&once实例详解
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Vue – 基础学习(4):事件修饰符
Vue – 基础学习(3):事件修饰符
- [vue]vue v-on事件绑定(原生修饰符+vue自带事件修饰符)
preventDefault阻止默认行为和stopPropagation终止传递 event.preventDefault() 链接本来点了可以跳转, 如果注册preventDefault事件,则点了 ...
- 33、vue中的事件修饰符.stop、.prevent、.self、.capture、.once
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- vue指令与事件修饰符
一.条件渲染指令 vue中提供了两个指令可以用于判断是否要显示元素,分别是v-if和v-show. 实例: <!DOCTYPE html> <html lang="en&q ...
- vue中的事件修饰符
vue提倡的是在方法中只有对数据的处理,所以提供了事件修饰符用于DOM的事件处理,常用的事件修饰符有以下几个: (1). stop:阻止冒泡(通俗讲就是阻止事件向上级DOM元素传递) 点击内层div的 ...
- Vue指令之事件修饰符
事件修饰符: + .stop 阻止冒泡 + .prevent 阻止默认事件 + .capture 添加事件侦听器时使用事件捕获模式 + .self 只当事件在该元素本身(比如不是子元素)触发时触发回调 ...
- 怎样在 Vue 中使用 事件修饰符 ?
Vue 中可以通过 v-on 来绑定事件监听函数, 不过事件会有许多额外情况, 比如 是否阻止冒泡 / 是否阻止重载 / 是否限制点击次数 / 是否可以通过按键触发 等等. 这时就需要使用到 事件修饰 ...
- (二)咋使用VUE中的事件修饰符
1,stop修饰符:阻止事件冒泡 首先我们要明确H5的事件是从内向外进行冒泡的,写一个简单的DEMO 当我们点击按钮时,事件从内向外冒泡,依次触发绑定的事件,控制台信息如下 现在我们在click后面添 ...
随机推荐
- 新来的"大神"用策略模式把if else给"优化"了,技术总监说:能不能想好了再改?
本文来自作者投稿,原作者:上帝爱吃苹果 目前在魔都,贝壳找房是我的雇主,平时关注一些 java 领域相关的技术,希望你们能在这篇文章中找到些有用的东西.个人水平有限,如果文章有错误还请指出,在留言区一 ...
- Day12-微信小程序实战-交友小程序-搭建服务器与上传文件到后端
要搞一个小型的cms内容发布系统 因为小程序上线之后,直接对数据库进行操作的话,慧出问题的,所以一般都会做一个管理系统,让工作人员通过这个管理系统来对这个数据库进行增删改查 微信小程序其实给我们提供了 ...
- el-switch 初始值(默认值)不能正确显示状态问题
<el-table-column align="center" label="状态"> <template slot-scope= ...
- postman无法正常启动
想请教下各位大神,我电脑的postman打开之后就一直转,没法启动是怎么回事?重装了不同版本的也是同样的情况,重启电脑也没用...同样的安装包,在别的电脑上就能正常打开!有什么办法解决吗? 0 20 ...
- 《UNIX环境高级编程》(APUE) 笔记第一章 - UNIX基础知识
1 - UNIX基础知识 Github 地址 1. 操作系统 可将操作系统定义为一种软件,它控制计算机硬件资源,提供程序运行环境.通常将这种软件称为 内核 (kernel) .( Linux 是 GN ...
- 解决wpf项目中无法添加OpenFileDialog 实例的问题
直接添加引用:using Microsoft.Win32; 或者放置鼠标于OpenFileDialog OpenFileDialog ofd = new OpenFileDialog(); 操作点击
- Drools之基础语法
一.规则文件 标准的规则文件以”.drl”结尾. 一套完整的规则文件内容如下: package:包名,只限于逻辑上的管理,若自定义的查询或函数位于同一包名,不管物理位置如何,都可以直接调用. impo ...
- expected single matching bean but found 2: menusServiceImpl,IMenusService
问题如下: 接口也作为匹配的bean? 有点迷惑了....... 经过在网上找资料,发现和@MapperScan这个注解有关系,具体源码不止.但是这个注解会扫描路径下的所有类. 去掉这个注解就可以正常 ...
- 「状压DP」「暴力搜索」排列perm
「状压DP」「暴力搜索」排列 题目描述: 题目描述 给一个数字串 s 和正整数 d, 统计 sss 有多少种不同的排列能被 d 整除(可以有前导 0).例如 123434 有 90 种排列能被 2 整 ...
- UVA11300 Spreading the Wealth 题解
题目 A Communist regime is trying to redistribute wealth in a village. They have have decided to sit e ...