跨瀏覽器的事件處理程序

var eventUtil = {//定義一個對象
addEventHandler:function(element,type,handler){//handler是觸發時的操作,即function,傳參數時,function不用加括號。

if(element.addEventListener){//支持dom2級
element.addEventListener(type,handler,false);
}else if(element.attachEvent){//支持ie
element.attachEvent(‘on’+type,handler);
}else{
element[‘on’+type]=handler;//這裏不用.的原因是因爲.不能連接一個變量跟一個字符串,事實上任何.的都可以用中括號表示
}
},

removeEventHander:function(element,type,hander){
if(element.removeEventListener){//不要加括號,檢測它是否有這個屬性
element.removeEventListener(type,hander,false);//這裏才需要加括號
}else if(element.detachEvent){
element.detachEvent(‘on’+type,hander);
}else{
element[‘on’+type]=null;
}
}
}

事件對象:在觸發dom事件的同時,都會產生一個event對象。

dom中的事件對象:event

1、type屬性用於獲取事件類型

2、target屬性用於獲取事件目標

 

事件冒泡:假如你觸發了子元素的一個事件,瀏覽器會默認你也觸發了此子元素的父元素的事件。

3、阻止事件冒泡的方法:event.stopPropagation(),放在子元素的handler裏面。

4、preventDefault()方法阻止事件的默認行爲。例如a標籤的默認行爲就是跳轉。

ie中的事件對象:window.event

1type屬性,用於獲取事件類型

2srcElement屬性,用於獲取事件目標

3cancelBubble用於阻止事件冒泡

4returnValue用於阻止事件的默認行爲

發佈了36 篇原創文章 · 獲贊 5 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章