vue中的事件修飾符(.stop、.prevent、.self、.capture、.once) (1)實例代碼 (2)摘要 使用.stop阻止事件的冒泡行為。 使用.prevent阻止事件的預設行為。 使用.self實現只有點擊當前元素才會觸發事件處理函數。 使用.capture實現捕獲觸發事件的機 ...
vue中的事件修飾符(.stop、.prevent、.self、.capture、.once)
(1)實例代碼
<!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>事件修飾符</title>
<script src="../lib/vue.js"></script>
<style>
.app{
width: 200px;
height: 200px;
background: red;
}
</style>
</head>
<body>
<!-- <div class="app" @click.capture="outClick"> -->
<!-- 使用.capture實現捕獲觸發事件的機制,即從外部事件開始執行 -->
<div class="app" @click.self="outClick">
<!-- 使用.self實現只有點擊當前元素才會觸發事件處理函數-->
<input type="button" value="按鈕1" @click.stop="innerClick">
<!-- 使用.stop阻止事件的冒泡行為 -->
<input type="button" value="按鈕2" @click.once="innerClick">
<!-- 使用.once實現事件的觸發次數為一次 -->
<a href="https://www.baidu.com/" @click.prevent.stop="aClick">有事找百度</a>
<!-- 使用.prevent阻止事件的預設行為 -->
</div>
<script>
var vm = new Vue({
el:".app",
methods:{
outClick(){
alert('我是外面的事件');
},
innerClick(){
alert('我是內部的事件');
},
aClick(){
alert('我是超鏈接的事件');
}
}
})
</script>
</body>
</html>
(2)摘要
使用.stop阻止事件的冒泡行為。
使用.prevent阻止事件的預設行為。
使用.self實現只有點擊當前元素才會觸發事件處理函數。
使用.capture實現捕獲觸發事件的機制,即從外部事件開始執行。
使用.once實現事件的觸發次數為一次。
需要特別註意.stop和.self的區別:.stop是阻止除了自己之外所有的冒泡事件,而.self是控制自己被點擊才會觸發事件處理函數,阻止自己被冒泡所影響。