1. 程式人生 > >vue.js - 事件修飾符

vue.js - 事件修飾符

事件修飾符

.stop : 阻止事件冒泡

.prevent : 阻止預設事件

.once : 只生效一次

<!-- 阻止單擊事件冒泡 -->
<a v-on:click.stop="doThis"></a>

<!-- 提交事件不再過載頁面,阻止預設事件 -->
<form v-on:submit.prevent="onSubmit"></form>

<!-- 修飾符可以串聯 -->
<a v-on:click.stop.prevent="doThat"></a>

<!-- 只有修飾符 -->
<form v-on:submit.prevent></form>

<!-- 新增事件監聽器時使用事件捕獲模式 -->
<!-- 即元素自身觸發的事件先在此處理,然後才交由內部元素進行處理 -->
<div v-on:click.capture="doThis">...</div>

<!-- 只當在 event.target 是當前元素自身時觸發處理函式 -->
<!-- 即事件不是從內部元素觸發的 -->
<div v-on:click.self="doThat">...</div>

<!-- 點選事件將只會觸發一次 -->
<a v-on:click.once="doThis"></a>

<!-- 滾動事件的預設行為 (即滾動行為) 將會立即觸發 -->
<!-- 而不會等待 `onScroll` 完成  -->
<!-- 這其中包含 `event.preventDefault()` 的情況 -->
<div v-on:scroll.passive="onScroll">...</div>

使用修飾符時,順序很重要;

相應的程式碼會以同樣的順序產生。

因此,用 v-on:click.prevent.self 會阻止所有的點選

而 v-on:click.self.prevent 只會阻止對元素自身的點選。