Vue之v-on修饰符self
加self到最里层div上,完整代码
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="https://unpkg.com/vue/dist/vue.js"></script>
<title>v-on(self)</title>
</head>
<body>
<div id="app"@click="myCatch('最外层')" style="background-color: blue;height: 300px;width:300px;">
<div @click="myCatch('中间层')"
style="background-color: red;height: 200px;width:200px;left: 50px;top: 50px;position:absolute; ">
<div @click.self="myCatch('最里层')"
style="background-color: yellow;height: 100px;width:100px;left: 50px;top: 50px;position:absolute; ">
</div>
</div>
</div>
<script>
let vm = new Vue({
el: "#app",
methods: {
myCatch(mg) {
console.log("我是" + mg);
}
}
})
</script>
</body>
</html>
点击最里div,效果如图:
加self到中间层div上
<div @click.self="myCatch('中间层')"
style="background-color: red;height: 200px;width:200px;left: 50px;top: 50px;position:absolute; ">
点击最里div,效果如图:
发现没有冒泡到中间层,也就是阻止了冒泡到自身。
加self到中间层,最外层div上.
<div id="app" @click.self="myCatch('最外层')" style="background-color: blue;height: 300px;width:300px;">
<div @click.self="myCatch('中间层')"
style="background-color: red;height: 200px;width:200px;left: 50px;top: 50px;position:absolute; ">
<div @click="myCatch('最里层')"
style="background-color: yellow;height: 100px;width:100px;left: 50px;top: 50px;position:absolute; ">
</div>
</div>
</div>
点击最里div,效果如图:
验证刚才的猜想,是阻止了冒泡到自身。
依次点击中间层,最外层,结果如下:
自己猜想正确。