首頁 > 軟體

vue.js中修飾符.stop的用法解析

2022-03-26 19:01:24

修飾符.stop的用法

.stop修飾符是用來阻止冒泡事件的發生的。

用法如下

<a v-on:click.stop="doThis"></a>

下面是全部的程式碼

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="vue.js"></script>
</head>
<style>
    #gpa {
        margin: 0 auto;
        width: 100px;
        height: 60px;
        background: green;
    }
    #pa {
        width: 60px;
        height: 40px;
        background: pink;
        margin: 0 auto;
        text-align: center
    }
</style>
<body>
//--------------------------------重點是這一部分程式碼。
<div id="gpa" v-on:click="dodo">
    <div id="pa" v-on:click="doThat">
        <a  v-on:click.stop="doThis" href="http://www.baidu.com" rel="external nofollow" >百度</a>
    //點選百度的時候不發生冒泡,執行doThis函數,然後跳轉到百度首頁。
    </div>
    //點選粉色部分,即pa部分,發生冒泡,執行doThat,dodo函數。
</div>
</body>
<script>
    var gpas = new Vue({
        el:'#gpa',
        data:{
        },
        methods:{
            doThis:function(){
                alert("doThis");
            },
            doThat:function (){
                alert("doThat")
            },dodo:function(){
                alert("dodo")
            }
        }
    })
    </script>
</html>

stop事件修飾符

修飾符說明
.stop阻止冒泡

stop事件修飾符具體介紹

.stop

.stop用來防止冒泡

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script src="./lib/vue-2.4.0.js"></script>
    <style>
            .inner {
              height: 150px;
              background-color: gold;
            }
        
            .outer {
              padding: 40px;
              background-color: red;
            }
          </style>
</head>
<body>
    
    <div id="app">
            <div class="inner" @click="div1Handler">
                    <input type="button" value="點選" @click="btnHandler">
            </div>
    </div>
    <script>
        var vm = new Vue({
            el:"#app",
            data: {
            },
            methods: {
                div1Handler() {
                    console.log('這是觸發了 inner div 的點選事件')
                },
                btnHandler() {
                    console.log('這是觸發了 btn 按鈕 的點選事件')
                }
            }
        })
    </script>
</body>
</html>

頁面操作效果

我們看到不光點選按鈕的點選事件觸發了,而且父容器div的點選事件也觸發了,這時我們就可以使用.stop來阻止這個冒泡了,如下

在存取測試

通過輸出可以看到點選事件沒有往上冒泡了!

以上為個人經驗,希望能給大家一個參考,也希望大家多多支援it145.com。


IT145.com E-mail:sddin#qq.com