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來确認發生事件的子節點