vue 事件修饰符 stop,capture,prevent

原文链接: vue 事件修饰符 stop,capture,prevent

上一篇: 在 JavaScript 中 (a ==1 && a== 2 && a==3) 是否有可能为 true

下一篇: vue 自定义指令 directives

https://cn.vuejs.org/v2/guide/events.html

使用stop和capture  终止事件传递和捕获事件

事件冒泡由底向上

<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <title>vue阻止事件冒泡</title>
    <script src="./vue.js" charset="utf-8"></script>
</head>

<body>
    <div id="app" @click="one">
        one
        <div @click="two">
            two
            <div @click="three">
                three
            </div>
        </div>
    </div>
</body>

<script>
    new Vue({
        el: "#app",
        methods: {
            one: function() {
                alert("one")
            },
            two: function() {
                alert("two")
            },
            three: function() {
                alert("three")
            }
        }
    })
</script>

</html>

点击three 会出现 三个弹窗

three,two,one

加入stop后只会出现three 即终止了事件的冒泡

<div @click.stop="three">
                three
</div>

与使用event的事件函数起到的效果相同

在微软的模型中,你必须设置事件的cancelBubble的属性为true
window.event.cancelBubble = true

在w3c模型中你必须调用事件的stopPropagation()方法
e.stopPropagation()

捕获事件由顶向下,使用capture 表示捕获事件

    <div id="app" @click.capture="one">
        one
        <div @click="two">
            two
            <div @click.stop="three">
                three
            </div>
        </div>
    </div>

点击three,结果为one,three

    <div id="app" @click.capture="one">
        one
        <div @click.capture="two">
            two
            <div @click.stop="three">
                three
            </div>
        </div>
    </div>

点击three  结果 为 one,two,three,

点击two结果为one,two

prevent阻止默认行为

<!-- 提交事件不再重载页面 -->
<form v-on:submit.prevent="onSubmit"></form>

once 事件只触发一次

<!-- 点击事件将只会触发一次 -->
<a v-on:click.once="doThis"></a>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值