原文出處:http://www.cnblogs.com/lianzi/archive/2011/09/17/2179735.html
- 0級事件的事件註冊:element.οnmοuseοver=func,但是注意的是0級時間不允許給一個元素註冊多個函數。
- 先說一下dom2級事件不支持ie,在ie中得事件被稱之爲ie事件模型。
- 在dom2中註冊時間爲addEventListener(事件名,回調函數,是否冒泡)移除爲removeEventListener()
- 在ie爲attachEvent()與detachEvent()
- 同時注意的是在ie中沒有參數event,而是把改屬性放到了window.event中所以在 編寫代碼的時候應該
function fun(event){ var e=event||window.event //可以調用e了 }
在dom2中事件的冒泡是默認false的,但是在ie中是開啓的。如果想要阻止的話,在dom2中具有event.stopPropagation()而在ie中爲window.event.cancelBubble=true
- 2級DOM的Event模塊包括HTMLEvents模塊,MouseEvents模塊,UIEvents模塊。
- HTMLEvents模塊提供對Event類型事件的支持:abort,blur,change,erro,focus,load,reset,resize,scroll,select,submit,unload
- MouseEvents模塊提供對MouseEvent類型事件的支持:click,mousedown,mousemove,mouseout,mouseover,mouseup
- UIEvents模塊提供對UIEvent類型事件的支持:DOMActivate,DOMFocusIn,DOMFocusOut
Event接口定義瞭如下屬性
- type: 發生的事件類型,如click,mouseover
- target: 發生事件的節點,可能與currentTarget不同
- currentTarget: 當前正在運行時間句柄的節點
- eventPhase: 一個數字,指定當前所處的事件傳播過程的階段。它的值爲常量:Event.CAPTURING_PHASE、Event.AT_TARGET、Event.BUBBLING_PHASE
- timeStamp: 一個Date對象,聲明瞭事件何時發生。
- bubbles: 一個布爾值,聲明該事件是否在文檔樹中起泡
- cancelable: 一個布爾值,聲明該事件是否有默認動作。
Event接口定義的方法:
- stopPropagation(): 阻止事件傳播
- preventDefault(): 阻止執行默認動作
UIEvent接口:
Event接口的子接口,MouseEvent接口的父接口。
定義了兩個屬性:
- view: 發生事件的Window對象(視圖對象)
- detail: 一個數字。提供事件的額外信息。對於click,mousedown,mouseup事件,這個字段代表點擊的次數。1代表一次,2代表兩次,3代表3 次。(每次點擊生成一次事件----detail值爲2的鼠標事件之前總有detail值爲1的鼠標事件)。對於DOMActivate事件,1表示爲正 常激活,2表示超級激活。(如雙擊鼠標或同時按下Shift鍵和Enter鍵)
MouseEvent接口的屬性:
- button: 一個數字,0--左鍵,1--中間鍵,2--右鍵。
- altKey,ctrlKey,shiftKey,metaKey:
- clientX,clientY: 聲明鼠標在瀏覽器窗口的座標
- screenX,screenY: 聲明鼠標針對屏幕左上角的座標
- relatedTarget: 引用與事件的目標節點相關的節點。(mouseover--鼠標離開的節點,mouseout--鼠標將進入的節點)
- 事件類型名稱:abort
- 事件接口:Event
- 是否冒泡:yes
- 默認動作:no
- 支持標籤:<img>,<object>
- 詳細屬性:
- 事件類型名稱:blur
- 事件接口:Event
- 是否冒泡:no
- 默認動作:no
- 支持標籤:<a>,<area>,<button>,<input>,<label>,<select>,<textarea>
- 詳細屬性:
- 事件類型名稱:change
- 事件接口:Event
- 是否冒泡:yes
- 默認動作:no
- 支持標籤:<input>,<select>,<textarea>
- 詳細屬性:
- 事件類型名稱:click
- 事件接口:MouseEvent
- 是否冒泡:yes
- 默認動作:yes
- 支持標籤:
- 詳細屬性:screenX,screenY,clientX,clientY,altKey,ctrlKey,shiftKey,metaKey,button,detail
- 事件類型名稱:error
- 事件接口:Event
- 是否冒泡:yes
- 默認動作:no
- 支持標籤:<body>,<frameset>,<img>,<object>
- 詳細屬性:
- 事件類型名稱:focus
- 事件接口:Event
- 是否冒泡:no
- 默認動作:no
- 支持標籤:<a>,<area>,<button>,<input>,<label>,<select>,<textarea>
- 詳細屬性:
- 事件類型名稱:load
- 事件接口:Event
- 是否冒泡:no
- 默認動作:no
- 支持標籤:<body>,<frameset>,<iframe>,<img>,<object>
- 詳細屬性:
- 事件類型名稱:mousedown
- 事件接口:MouseEvent
- 是否冒泡:yes
- 默認動作:yes
- 支持標籤:
- 詳細屬性:screenX,screenY,clientX,clientY,altKey,ctrlKey,shiftKey,metaKey,button,detail
- 事件類型名稱:mousemove
- 事件接口:MouseEvent
- 是否冒泡:yes
- 默認動作:no
- 支持標籤:
- 詳細屬性:screenX,screenY,clientX,clientY,altKey,ctrlKey,shiftKey,metaKey
- 事件類型名稱:mouseout
- 事件接口:MouseEvent
- 是否冒泡:yes
- 默認動作:yes
- 支持標籤:
- 詳細屬性:screenX,screenY,clientX,clientY,altKey,ctrlKey,shiftKey,metaKey,relatedTarget
- 事件類型名稱:mouseover
- 事件接口:MouseEvent
- 是否冒泡:yes
- 默認動作:yes
- 支持標籤:
- 詳細屬性:screenX,screenY,clientX,clientY,altKey,ctrlKey,shiftKey,metaKey,relatedTarget
- 事件類型名稱:mouseup
- 事件接口:MouseEvent
- 是否冒泡:yes
- 默認動作:yes
- 支持標籤:
- 詳細屬性:screenX,screenY,clientX,clientY,altKey,ctrlKey,shiftKey,metaKey,button,detail
- 事件類型名稱:reset
- 事件接口:Event
- 是否冒泡:yes
- 默認動作:no
- 支持標籤:<form>
- 詳細屬性:
- 事件類型名稱:resize
- 事件接口:Event
- 是否冒泡:yes
- 默認動作:no
- 支持標籤:<body>,<frameset>,<iframe>
- 詳細屬性:
- 事件類型名稱:scroll
- 事件接口:Event
- 是否冒泡:yes
- 默認動作:no
- 支持標籤:<body>
- 詳細屬性:
- 事件類型名稱:select
- 事件接口:Event
- 是否冒泡:yes
- 默認動作:no
- 支持標籤:<input>,<textarea>
- 詳細屬性:
- 事件類型名稱:submit
- 事件接口:Event
- 是否冒泡:yes
- 默認動作:yes
- 支持標籤:<form>
- 詳細屬性:
- 事件類型名稱:unload
- 事件接口:Event
- 是否冒泡:no
- 默認動作:no
- 支持標籤:<body>,<frameset>
- 詳細屬性:
- 事件類型名稱:DOMActivate
- 事件接口:UIEvent
- 是否冒泡:yes
- 默認動作:yes
- 支持標籤:
- 詳細屬性:detail
- 事件類型名稱:DOMFocusIn
- 事件接口:Event
- 是否冒泡:yes
- 默認動作:no
- 支持標籤:none
- 詳細屬性:none
- 事件類型名稱:DOMFocusOut
- 事件接口:Event
- 是否冒泡:yes
- 默認動作:no
- 支持標籤:none
- 詳細屬性:none