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
1、type屬性,用於獲取事件類型
2、srcElement屬性,用於獲取事件目標
3、cancelBubble用於阻止事件冒泡
4、returnValue用於阻止事件的默認行爲