事件委託 事件觸發與事件冒泡

2021-07-16 13:52:19 字數 706 閱讀 5102

事件委託:通俗的講,事件就是onclick,onmouseover,onmouseout,等就是事件,委託呢,就是讓別人來做,這個事件本來是加在某些元素上的,然而你卻加到別人身上來做,完成這個事件。也就是:利用冒泡的原理,把事件加到父級上,觸發執行效果。

假設乙個元素div,它有乙個下級元素p。元素

事件捕獲:當你使用事件捕獲時,父級元素先觸發,子級元素後觸發,即div先觸發,p後觸發。

事件冒泡:當你使用事件冒泡時,子級元素先觸發,父級元素後觸發,即p先觸發,div後觸發。

一般的,事件分為三個階段:捕獲階段、目標階段和冒泡階段。

(1)捕獲階段(capture phase)

事件的第乙個階段是捕獲階段。事件從文件的根節點流向目標物件節點。途中經過各個層次的dom節點,並在各節點上觸發捕獲事  件,直到到達事件的目標節點。捕獲階段的主要任務是建立傳播路徑,在冒泡階段,事件會通過這個路徑回溯到文件跟節點。

(2)目標階段(target phase)

當事件到達目標節點的,事件就進入了目標階段。事件在目標節點上被觸發,然後會逆向回流,直到傳播至最外層的文件節點。

(3)冒泡階段(bubble phase)

事件在目標元素上觸發後,並不在這個元素上終止。它會隨著dom樹一層層向上冒泡,回溯到根節點。

冒泡過程非常有用。它將我們從對特定元素的事件監聽中釋放出來,如果沒有事件冒泡,我們需要監聽很多不同的元素來確保捕獲到想要的事件。

事件冒泡與捕獲 事件委託

設想這樣一種情況 乙個div裡面有個span元素 當滑鼠單擊span時,這個事件算是誰的?div還是span?準確的說兩個都觸發了,這種認可大家都同意,事實就是這樣的,第二個問題來了,這個事件應該有個先後順序 先觸發span還是div?早期就有兩個主流的瀏覽器廠商各執己見,ie認為,這個事件首先觸發...

jQuery 事件冒泡與事件委託

什麼是事件冒泡 在乙個物件上觸發某類事件 比如單擊onclick事件 如果此物件定義了此事件的處理程式,那麼此事件就會呼叫這個處理程式,如果沒有定義此事件處理程式或者事件返回true,那麼這個事件會向這個物件的父級物件傳播,從裡到外,直至它被處理 父級物件所有同類事件都將被啟用 或者它到達了物件層次...

c 委託事件

1,什麼是委託 委託是什麼?從生活理解就像是你是乙個c 程式設計師,你對c 並不了解,當需要進行c 分析的時候你委託給你的一位懂c 的同事幫你來完成 在c 中,委託的作用是這樣描述的 委託就像乙個函式的指標,在程式執行時可以使用它們來呼叫不同的函式。簡單點說,委託能夠引用函式,通過傳遞位址的機制完成...