v-on
    vue中提供了v-on事件绑定
    v-on:click='函数';
    v-on可以使用@代替

vue  五个触发事件关键字
    .stop 用于阻止冒泡
    例如 div1中嵌套div2,且两个div都有点击事件,那么在点击div2时会触发div1的
    点击事件.click.stop可以阻止所有冒泡

.prevent 用于阻止默认事件,点击a标签href可以打开相应的链接,那么给事件加
    上此关键字,click.prevent

.capture 冒泡顺序
    例如 div1中嵌套div2中嵌套div3
    
        <div id="app" v-on:click="show">
            1
            <div id="app2" v-on:click.capture="show2">
                2
                <div id="app3" v-on:click="show3">
                    3
                    
                </div>
            </div>
        </div>

<script type="text/javascript">
        var vm=new Vue({
            el:"#app",
            data:{
                
            },
            methods:{
                show:function(){
                    console.log("这是app的方法")
                },
                show2:function(){
                    console.log("这是app2的方法")
                },
                show3:function(){
                    console.log("这是app3的方法")
                }
            }
        })
    </script>

此处的代码因为div2有capture关键字,所以此时冒泡的顺序发生了改变
    正常情况下:
        点击div3一层一层冒泡,先div3=》div2=》div1

使用了关键字:
        点击div3时,先div2=》div3=》div1
        1.先冒泡外层带有关键字的事件
        2.外层执行结束之后,往里层执行事件
        3.最后按照从里向外的事件开始执行
        就是说只要存在一个capture关键字,就会影响整个嵌套的执行
        例子
            div1中嵌套div2中嵌套div3.capture中嵌套div4
                此时点击div1
                先执行带有capture的div3
                然后执行div4
                最后按照从里向外的顺序执行
                顺序就是   div3=》div4=》div2=》div1

其他疑惑
            此时嵌套为
            div1中嵌套div2.capture中嵌套div3中嵌套div4
            那么可以想一下点击最里层的div4会怎么触发呢
            
            1.触发带有关键字的 div2
            2.触发点击的div4
            3.最后从里向外执行
            那么顺序为   div2=》div4=》div3=》div1

.self关键字阻止冒泡或者当点击自身才触发
        stop阻止除了自己以外所有的事件触发
        self加给想要阻止冒泡的或想要去单独点击它才触发的对象上

.onec 只触发一次,再点击无效果

vue触发事件的五个关键字的更多相关文章

  1. Vue.js之下拉列表及选中触发事件

    老早就听说了Vue.js是多么的简单.易学.好用等等,然而我只是粗略的看了下文档,简单的敲了几个例子,仅此而已. 最近由于项目的需要,系统的看了下文档,也学到了一些东西. 废话不多说,这里要说的是下拉 ...

  2. Vue自定义事件,$on(eventName) 监听事件,$emit(eventName) 触发事件

    <!--自定义事件 使用 $on(eventName) 监听事件 使用 $emit(eventName) 触发事件--> <div id="app15"> ...

  3. 在子组件中触发事件,传值给父组件-vue

    1.通过$emit触发事件 在子组件<x-test>中触发事件: <button @click="toSearchProduct()">搜索</but ...

  4. es6 Object.assign ECMAScript 6 笔记(六) ECMAScript 6 笔记(一) react入门——慕课网笔记 jquery中动态新增的元素节点无法触发事件解决办法 响应式图像 弹窗细节 微信浏览器——返回操作 Float 的那些事 Flex布局 HTML5 data-* 自定义属性 参数传递的四种形式

    es6 Object.assign   目录 一.基本用法 二.用途 1. 为对象添加属性 2. 为对象添加方法 3. 克隆对象 4. 合并多个对象 5. 为属性指定默认值 三.浏览器支持 ES6 O ...

  5. Vue基础系列(五)——Vue中的指令(中)

    写在前面的话: 文章是个人学习过程中的总结,为方便以后回头在学习. 文章中会参考官方文档和其他的一些文章,示例均为亲自编写和实践,若有写的不对的地方欢迎大家和我一起交流. VUE基础系列目录 < ...

  6. javaScript事件(五)事件类型之鼠标事件

    一.事件 二.事件流 以上内容见:javaScript事件(一)事件流 三.事件处理程序 四.IE事件处理程序 以上内容见javaScript事件(二)事件处理程序 五.事件对象 以上内容见javaS ...

  7. Vue自定义事件

    前面的话 父组件使用props传递数据给子组件,子组件怎么跟父组件通信呢?这时,Vue的自定义事件就派上用场了.本文将详细介绍Vue自定义事件 事件绑定 每个 Vue 实例都实现了事件接口 (Even ...

  8. 关于ElementUI中MessageBox弹框的取消键盘触发事件(enter,esc)关闭弹窗(执行事件)的解决方法

    好久没见了 在项目中遇到一个小小的需求,总结了一下! 详细我就不介绍了,相信大家用过的话,很了解.详见文档-----------> http://element-cn.eleme.io/#/zh ...

  9. vue click事件获取当前元素属性

    Vue可以传递$event对象 <body id="app"> <ul> <li @click="say('hello!', $event) ...

随机推荐

  1. Codeforce-Ozon Tech Challenge 2020-A. Kuroni and the Gifts

    the i-th necklace has a brightness ai, where all the ai are pairwise distinct (i.e. all ai are diffe ...

  2. 图论--割点--Tarjan模板

    #include <iostream> #include <algorithm> #include <cstdio> #include <cstring> ...

  3. libevent(十)bufferevent 2

    接上文libevent(九)bufferevent 上文主要讲了bufferevent如何监听读事件,那么bufferevent如何监听写事件呢? 对于一个fd,只要它的写缓冲区没有满,就会触发写事件 ...

  4. E. A Simple Task

    E. A Simple Task 这个题目的意思是 给你一个由小写字母组成的字符串,有两种操作 i j k 如果k==1 那么就是就把i 到 j 的这个区间非递减排序. i j k如果k==2 那么就 ...

  5. 在web项目中使用shiro(认证、授权)

    一.在web项目中实现认证 第一步,在web项目中导入shiro依赖的包 第二步,在web.xml中声明shiro拦截权限的过滤器 <filter> <filter-name> ...

  6. IE浏览器下报错: strict 模式下不允许一个属性有多个定义

    vue项目,打包后在IE11和360浏览器(都是IE内核)上运行,控制台报了strict 模式下不允许一个属性有多个定义这个错误,导致流程不能正常走下去,查资料后知道应该是定义了重复的属性,于是就开始 ...

  7. CSS理论:margin-left在float中的运用

    源码如下: margin-left 指的是左边的外边距,为正数时,左边间距增大,div向右偏移,为负数时,左边间距减少,相反往左偏移 双飞翼 .wrap { width: 100%; margin: ...

  8. python mysql数据库基本操作方法

    实现:使用Python实现用户登录,如果用户存在(数据库表中存在)则登录成功(假设该用户已在数据库中) import pymysql username = input('输入用户名:').strip( ...

  9. abp(net core)+easyui+efcore实现仓储管理系统——入库管理之十二(四十八)

    abp(net core)+easyui+efcore实现仓储管理系统目录 abp(net core)+easyui+efcore实现仓储管理系统——ABP总体介绍(一) abp(net core)+ ...

  10. docker 容器核心技术

    容器的数据卷(volume)也是占用磁盘空间,可以通过以下命令删除失效的volume: [root@localhost]# sudo docker volume rm $(docker volume ...