呼叫事件:
事件物件
什麼是事件物件?在觸發dom上的事件是都會產生一個事件物件event。例如滑鼠點擊的時候,自己就會產生例如點擊的類型啊 還要那個元素發出的
dom 事件對象 type 屬性用於取得事件對象, target屬性 用於取得事件目標,stopPropagation()方法 阻止事件冒泡 preventDefault阻止事件的預設行為
IE中的事件對象 type 屬性 用於取得事件對象, srcElement屬性 用於取得事件目標 cancelBubble屬性 用於阻止事件冒泡 設為true 是表示阻止 false表示不阻止
returnValue 屬性 用來阻止事件的預設行為 設定為false的時候表示阻止
// 相容於各個瀏覽器 跨瀏覽器事件處理------- 統一進行封裝
var EventHandle = {
// element : 元素 , type: 點選事件 ,handle : 實行的方法
//新增句柄
addEventHandle: function (element, type, handler) {
if (element.addEventListener) {
element.addEventListener(type, handler, false);//---false //代表冒泡 dom2級
}
else if (element.attachEvent) {
element.attachEvent("on" type, handler);
} else {
element["on" type] = handler;
}
},
//刪除句柄 事件處理不起作用
removeEventHandle: function (element, type, handler) {
if (element.removeEventListener) { // 支援dom2級的事件處理 type是 onclick
element.removeEventListener(type, handler, false); //---false //代表冒泡
}
else if (element.detachEvent) {
element.detachEvent("on" type, handler); //支援IE
} else {
element["on" type] = null;// dom0級事件處理 傳統的點選事件
}
},
//取得事件物件 相容瀏覽器的所有物件
getEvent: function (event) {
return event ? event : window.event; //在IE瀏覽器的低版本所需要的是window.event
},
//取得事件類型 點選呢還是滑鼠移動
getType:function(event){
return event.type;
},
//取得目前的那個元素
getElement: function (event) {
return event.target || event.srcElement;
},
//阻止事件的預設行為
: function (event) {
if (event.preventDefault) {
event.preventDefault();
}
else {
event.returnValue = false;
}
},
//阻止事件冒泡
stopPropagation: function (event) {
if (event.stopPropagation) {
event.stopPropagation();
}
else {
event.cancelBubble = true;
}
}
}