vue(一)--監聽事件


1.vue-on:監聽事件:

demo:點擊按鈕,number+1

v-on 還可以縮寫為 @

 

 

2.事件修飾符

  • .stop:等同於JavaScript中的event.stopPropagation()阻止冒泡(通俗講就是阻止事件向上級DOM元素傳遞)
  • .prevent:等同於JavaScript中的event.preventDefault(), 默認事件指對DOM的操作會引起自動執行的動作,比如點擊超鏈接的時候會進行頁面的跳轉,點擊表單提交按鈕時會重新加載頁面等,使用".prevent"修飾符可以止這些事件的發生
  • .capture:與事件冒泡的方向相反,事件捕獲由外到內
  • .self:只會觸發自己范圍內的事件,不包含子元素
  • .once:只會觸發一次

事件冒泡?

  即是:父元素里有 子元素, 如果點擊了 子元素, 那么click 事件不僅會發生在子元素上,也會發生在其父元素上,依次不停地向父元素冒泡,直到document元素。

 

 

使用事件修飾符解決冒泡: 

1.   .stop阻止冒泡(通俗講就是阻止事件向上級DOM元素傳遞)

在me上的click后面加一個 .stop, 那么冒泡到了這里就結束了,就不會冒到father上面去了。
<div id="me" v-on:click.stop="doc">

 

 2.   .prevent  阻止頁面刷新

 只有超鏈form這種會導致頁面刷新的操作,.prevent 才有用。 普通的不導致頁面刷新的按鈕,加上這個沒有任何變化。

demo:點擊超鏈接和form不跳轉網頁:

 

 

3.    優先觸發 .capture

在father 上增加一個.capture      <div id="father" v-on:click.capture="doc">

那么當冒泡發生的時候,就會優先讓father捕捉事件。點擊son或者me的時候,都會優先觸發它,當點擊grandfather時並不會被father捕捉,只會彈出grandfather

 

 

4.   .self

<div id="father" v-on:click.self="doc">
這樣點擊son 和 me都不會導致其觸發click事件,只有點擊father自己,才會導致事件發生。

點擊son:  son---->me-->grandfather

點擊me:   me---->grandfather

點擊father : father---》grandfather

 

 

5.      .once

<div id="father" v-on:click.once="doc">
這樣father點擊一次之后,就不會再監聽到click了

點擊son:  son---me--father--grandfather

點擊me:   me--grandfather

點擊father: grandfather

點擊grandfather:grandfather


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM