對於原生js中的事件委託解析

2021-08-01 23:50:15 字數 580 閱讀 2006

在日常中,我們可能會聽到事件委託這樣的概念,有些同學可能對事件委託已經很了解了,也有些同學可能只是聽過事件委託,只是會簡單的使用,但是對於事件委託的原理不怎麼知道。所以該博文會解釋一下原生js的事件委託的原理,為什麼會有事件委託,為什麼可以這樣用事件委託等等問題。

在解析事件委託之前,我們先回顧一下js中的事件流,即冒泡和捕獲。

1.冒泡:當下級節點觸發某個事件的時候,該事件會逐級向上觸發上級節點的同類事件。

2.捕獲:和冒泡類似,只不過事件的順序相反。即是從上級節點傳遞到下級節點

事件委託就是基於js的事件流產生的,事件委託是利用事件冒泡,將事件加在父元素或者祖先元素上,觸發該事件。

上面的**就是乙個典型的事件委託案例。利用的原理就是事件冒泡,將事件載入父元素上,通過event引數來區別按鈕的不同

通過對上面事件委託**的觀察,我們可以很容易得出事件委託的好處:

1.減少頁面繫結事件數量,由於頁面事件繫結數量越多,頁面執行效能越差,所以事件委託可以提高頁面的效能

2.事件委託可以靈活的處理子節點動態變化的場景,無論子節點增加還是減少,事件都無需重新繫結

原生js事件委託

之前面試的時候就被問過,什麼是事件委託?事件委託 給父元素繫結事件,用來監聽子元素的冒泡事件。也就是事件目標 子元素 不處理事件,把事件委託給父元素去處理。看下圖理解事件冒泡 事件委託的好處 不需要對每乙個子元素繫結事件,只需要在父元素上繫結事件,減少了操作dom節點的次數,從而減少瀏覽器的重載入,...

原生JS及jQuery中事件委託的寫法

在繫結節點事件處理程式時遇到的問題 採用事件委託的優點 下面以給每個li 元素繫結click事件為例 container item li 1 li item li 2 li item li 3 li item li 4 li item li 5 li item li 6 li ul 原生js事件委託...

js中的事件委託

1,什麼是事件委託 通俗的講,事件就是onclick,onmouseover,onmouseout,等就是事件,委託呢,就是讓別人來做,這個事件本來是加在某些元素上的,然而你卻加到別人身上來做,完成這個事件。也就是 利用冒泡的原理,把事件加到父級上,觸發執行效果。好處呢 1,提高效能。我們可以看乙個...