JS 筆記14之事件委託

2021-07-23 16:04:35 字數 1502 閱讀 5838

-->什麼是事件委託

-->事件委託原理

-->事件委託優點

-->事件源 / 目標源

一、什麼是事件委託

通俗的講,onclick,onmouseover,onmouseout等這些就是事件

委託,就是這個事件本來應該加在某些元素上的,而你卻加到其他元素上來完成這個事件。

我是p標籤

二、事件委託原理

利用事件傳播(冒泡)機制,就可以實現事件委託 。

具體來說,事件委託就是事件目標自身不處理事件,而是把處理任務委託給其父元素或者祖先元素,甚至根元素(document)來完成。

三、事件委託優點

1、提高效能、效率高

2、新新增的元素也會有之前的事件(給未來元素新增事件)

3、**量少

可以給未來元素新增事件:

"box">

"btn">建立

四、獲取當前事件源

在火狐中獲得觸發事件的元素(事件源)可以用:event.target

在ie中獲得觸發事件的元素(事件源)可以用:event.srcelement

var target = event.target||

event.srcelement;

1

2323

242526

我是p標籤

27我是span標籤

28我是em標籤

29我是h4標籤

30我是strong標籤31

我是var標籤

32我是h5標籤

33我是span標籤

34我是p標籤

353655

56

五、獲取目標源

1、在mouseover事件中,它指向滑鼠來自哪個元素

event.relatedtarget火狐獲取觸發事件的目標源,與target相反,也是事件委託型別

fromelement ie獲取觸發事件的目標源,與srcelement相反,也是事件委託型別

var from=event.relatedtarget||event.fromelement;

1

2335

3637

4064

6566

67

2、

在mouseout事件中,它指向滑鼠去往的那個元素

event.relatedtarget火狐獲取觸發事件的目標源,與target相反,也是事件委託型別

event.toelement ie獲取觸發事件的目標源,與srcelement相反,也是事件委託型別

var to=event.relatedtarget||event.toelement;

六、事件監聽-不覆蓋

1

2313

141536

3738

JS之事件物件

當事件的響應函式被觸發時,瀏覽器每次都會將乙個事件物件作為實參傳遞進響應函式。現在咱們通過獲取滑鼠座標來分析事件物件吧。直接上 結果 chrome及其它瀏覽器正常彈出,ie8出現錯誤,在ie8響應函式被觸發時,瀏覽器不會傳遞事件物件,ie8及以下的瀏覽器中,是將事件物件作為window物件的屬性儲存...

JS之事件監聽

一 如果事件監聽類似於如下寫法,則最終只會執行最後乙個事件監聽,其他監聽都會被覆蓋掉。window.onload funtion window.onload funtion window.onload funtion 最終只會輸出 3 二 如果事件監聽類似於如下寫法,則每個事件監聽都會被執行,其他監...

js事件委託

乙個ul列表,裡邊有乙個1000個li元素,如何為這1000個li元素新增click事件?function false 參考文章 作為閉包使用的 function 已知ab兩個有序陣列,a陣列長度m,b陣列長度n,請最多迴圈m n次找出a,b陣列中相同的元素 對 事件處理程式過多 問題的解決方案就是...