1. 程式人生 > >總結------事件3

總結------事件3

t對象 w3c return window tac 兩個 相關 窗口 全局

一 事件對象(event):與特定事件相關且包含有關該事件詳細信息的對象
通過事件可以觸發event對象的元素,鼠標的位置及狀態,按下的鍵等等
event對象只在事件發生的過程中才有效
非IE瀏覽器裏的event跟IE裏的不同,IE裏面的是全局變量,隨時都可用
非IE瀏覽器需要用參數誘導才能使用是運行時的一個局部變量

clientX:鼠標在瀏覽器窗口中的橫向坐標
clientY:鼠標在瀏覽器窗口中的縱向坐標

二 事件流:描述的是頁面中接受事件的順序
在w3c的標準裏面規定了事件的執行順序要經歷兩個過程:事件捕獲,事件冒泡
事件捕獲:由最不具體的節點接收事件,而最具體的節點最後接收---由外到內的過程
最不具體的節點:document或者window
最具體的節點:綁定事件的對象最裏層的節點
事件冒泡:由具體的元素接收,然後逐級向外面傳播至最不具體的節點---由內到外的過程
整個事件流的順序:先接收再傳播

阻止事件冒泡:因為執行函數是在冒泡階段執執行的
stopPropagation();
cancelBubble=true;
window.event?window.event.cancelBubble=true:e.stopPropagation();

阻止事件的默認行為:
preventDefault();
returnValue=false;
window.event?window.event.returnValue=false:e.preventDefault();

三 事件處理程序---事件後面綁定的函數
1 HTML事件處理:
直接添加到HTML結構當中
<tag onclick="funName()"></tag>---HTML的事件屬性
2 DOM0級事件處理:
把一個函數賦值給一個事件
DOM.on事件名=function(){---對象的事件屬性
程序塊;
}
3 DOM2級事件處理:
添加事件句柄:
非IE低版本:
addEventListener("EventType",FunName,Bool);---事件句柄
true:在事件捕獲階段執行事件處理程序
false:在事件冒泡階段執行事件處理程序

IE低版本:
attachEvent("on事件名",函數名);---只支持事件冒泡的階段


移除事件句柄:
removeEventListener("EventType",FunName,Bool);
detachEvent("on事件名",函數名);
只能移除沒有帶參數的事件函數

總結------事件3