zoukankan      html  css  js  c++  java
  • Vue事件修饰符

    1、stop阻止冒泡

        <style>
            .outer {
                 500px;
                height: 300px;
                background: greenyellow;
            }
            .inner {
                 300px;
                height: 200px;
                background: hotpink;
            }
            .lastInner {
                 150px;
                height: 100px;
                background: mediumaquamarine;
            }
        </style>
    
        <div id="app">
            <div class="outer" @click="outer">
                <div class="inner" @click.stop="inner">
                    <div class="lastInner" @click.stop="lastInner">
    
                    </div>
                </div>
            </div>
        </div>
    
    <script>
           var vm = new Vue({
                el: '#app',
                data: {
                  
                },
                methods: {
                    outer() {
                        console.log("最外层盒子");
                    },
                     inner() {
                        console.log("内层盒子");
                    },
                     lastInner() {
                        console.log("最内层盒子");
                    },
                }
            })
    </script>

    2、prevent阻止默认事件

       <div id="app">
            <a href="https://www.baidu.com" target="_blank"  @click.prevent="clickA">百度</a>
        </div>
    
    <script>
            var vm = new Vue({
                    el: '#app',
                    data: {
                     
                    },
                    methods: {
                        clickA() {
                            console.log("点击a标签");
                        }
                    }
                })
    </script>

    3、capture添加事件侦听器时使用事件捕获模式

      <style>
            .outer {
                 500px;
                height: 300px;
                background: greenyellow;
            }
    
            .inner {
                 300px;
                height: 200px;
                background: hotpink;
            }
    
            .lastInner {
                 150px;
                height: 100px;
                background: mediumaquamarine;
            }
        </style>
    
        <div id="app">
            <div class="outer" @click.capture="outer">
                <div class="inner" @click.capture="inner">
                    <div class="lastInner" @click="lastInner">
    
                    </div>
                </div>
            </div>
        </div>
    
    <script>
        var vm = new Vue({
            el: '#app',
            data: {
    
            },
            methods: {
                outer() {
                    console.log("最外层盒子");
                },
                inner() {
                    console.log("内层盒子");
                },
                lastInner() {
                    console.log("最内层盒子");
                },
            }
        })
    </script>

    4、self只当事件在该元素本身(比如不是子元素)触发时触发回调

        <style>
            .outer {
                 500px;
                height: 300px;
                background: greenyellow;
            }
    
            .inner {
                 300px;
                height: 200px;
                background: hotpink;
            }
    
            .lastInner {
                 150px;
                height: 100px;
                background: mediumaquamarine;
            }
        </style>
    
        <div id="app">
            <div class="outer" @click.self="outer">
                <div class="inner" @click.self="inner">
                    <div class="lastInner" @click.self="lastInner">
    
                    </div>
                </div>
            </div>
        </div>
    
    <script>
        var vm = new Vue({
            el: '#app',
            data: {
    
            },
            methods: {
                outer() {
                    console.log("最外层盒子");
                },
                inner() {
                    console.log("内层盒子");
                },
                lastInner() {
                    console.log("最内层盒子");
                },
            }
        })
    </script>

    5、once事件只触发一次

        <style>
            .outer {
                 300px;
                height: 200px;
                background: mediumpurple;
            }
        </style>
    
        <div id="app">
            <div class="outer" @click.once="onlyOne">
    
            </div>
        </div>
    
    <script>
        var vm = new Vue({
            el: '#app',
            data: {
    
            },
            methods: {
                onlyOne() {
                    console.log("只执行一次");
                }
            }
        })
    </script>
  • 相关阅读:
    Nmap参数详解(含扫描参数原理解释)
    为什么服务器突然回复RST——小心网络中的安全设备
    Security+学习笔记
    《HTTPS权威指南》读书笔记——PKI
    [Android 搞机]Twrp 中清除 data 和搞机清除的区别
    [C语言学习笔记五]复合语句和操作符的区分
    [C语言学习笔记四]变量与系统的交互
    [C语言学习笔记三]格式化输出和输入
    [C语言学习笔记二] extern 函数的用法
    [C语言学习笔记一]基本构架和变量
  • 原文地址:https://www.cnblogs.com/wangxue13/p/13619568.html
Copyright © 2011-2022 走看看