1. 程式人生 > >vue.js中的事件修飾符的使用

vue.js中的事件修飾符的使用

事件修飾符:
.stop .prevent .capture .self .once

1 .stop:阻止事件冒泡。

2.prevent:阻止預設事件。

3.capture:新增事件偵聽器時使用事件捕獲模式 (若有多個該修飾符的元素則由外而內觸發)。

例:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<title>Vue</title>
<script src="https://unpkg.com/vue">
</script> <style> body,div{ margin: 0;padding: 0; } #vue-app{ width: 400px; height: 400px; background-color: skyblue; } .div1{ width: 300px; height: 300px; background-color: pink; } .div2{ width: 200px; height: 200px; background-color: silver; } .div3{ width: 100
px
; height: 100px; background-color: #ccc; }
.div4{ width: 50px; height: 50px; background-color: #ddd; }
</style> </head> <body> <div id="vue-app"><!--根容器--> <div class="div1" v-on:click.capture="alert(1)"> <div class="div2" v v-on:click.capture
="alert(2)">
<div class="div3" v-on:click="alert(3)"> <div class="div4" v-on:click="alert(4)"></div> </div> </div> </div> </div> <!--結果為1 2 4 3,即先觸發div1再觸發div2再觸發div4再觸發div3--> <script> new Vue({ el:"#vue-app", methods:{ alert: function(val){ alert(val); } } }); </script> </body> </html>

4.self:當事件在該元素本身(而不是子元素)觸發時觸發回撥(即直接作用在該元素上的事件才可以執行)。

例:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<title>Vue</title>
<script src="https://unpkg.com/vue"></script>
<style>
body,div{
    margin: 0;padding: 0;
}
#vue-app{
    width: 400px;
    height: 400px;
    background-color: skyblue;
}
.div1{
    width: 300px;
    height: 300px;
    background-color: pink;
}
.div2{
    width: 200px;
    height: 200px;
    background-color: silver;
}
.div3{
    width: 100px;
    height: 100px;
    background-color: #ccc;
}
.div4{
    width: 50px;
    height: 50px;
    background-color: #ddd;
}
</style>
</head>
<body>
<div id="vue-app"><!--根容器-->
    <div class="div1" v-on:click.capture="alert(1)">
        <div class="div2" v-on:click.self="alert(2)">
            <div class="div3" v-on:click="alert(3)">
                <div class="div4" v-on:click="alert(4)"></div>
            </div>
        </div>
    </div>
</div>
<!--結果為1 4 3-->
<script>
new Vue({
    el:"#vue-app",
    methods:{
        alert: function(val){
            alert(val);
        }
    }
});
</script>
</body>
</html>

5.once:事件只能觸發一次。