天天看點

MDN JS學習之event

event 事件

event handler 事件處理器(事件fire以後運作的代碼塊,注冊一個事件處理器)

event listener 事件監聽器

監聽器是監聽事件的發生,處理器是事件發生以後做出的響應

event handler 有三種不同的形式:

1. object的event handler properties

有更好的跨浏覽器相容性

btn.onclick = function(){//run code here}

2.Inline event handlers ,不建議使用

(又叫event handler HTML attributes)

Press me

3.addEventListener() & removeEventListener()

可以移除無用的事件處理器,但相容性不太好

對同一個元素可以注冊多個監聽器處理器,而特性形式的則隻能保留最後一個處理器,前面的都會被覆寫

其他知識點:

1.handler帶的參數event/eve/e event object

event object帶有的target屬性,就是一個指向事件發生載體的引用

2.event bubbling and capturing

針對某個元素上同一個事件被激活的時所響應的多個事件處理器

bubbling phase是從内到外,從元素本身向父節點擴散檢測事件處理器

capturing phase是從外到内,從html節點開始向目标節點追蹤檢測事件處理器

浏覽器預設的是bubbling,阻止擴散的話用e.stopPropagation();

要使用capturing phase的話,可以将addEventListener()的第三個參數設定為true

3.事件代理/委托 event delegation

要對多個子節點進行同一個事件處理,可以直接将事件處理器綁定在父節點上。并且用event.target來确認發生事件的子節點

繼續閱讀