一、注冊事件
1、通過element.onclick方式注冊事件,存在無法給同一個物件的同一個事件注冊多個事件處理函式的問題
2、通過element.addEventListenner(eventName, fn, flag)方式注冊事件,存在瀏覽器兼容性的問題(IE9以后才支持此方法)第一個表示什么事件型別,注意沒有on,第二個指定方法,第三個是標示是事件冒泡(true)還是事件捕獲(false),涉及到從下到上還是從上到下的事件發生順序.
3、通過element.attachEvent()方式注冊事件,同樣存在瀏覽器兼容性的問題(IE6-IE10特有的方法)
//判斷當前瀏覽器是否支持此方法
if(element.addEventListener){
element.addEventListener(eventName,fn,flag)
}else if(element.attachEvent){
element.attachEvent("on"+eventName,fn,flag);
}else{
// 相當于element.onclick=fn;
element["on"+eventName]=fn;
}
二、移除事件
1、使用element.onclick=null來移除
2、使用element.removeEventListener(eventName, fn)來移除
3、使用element.detachEvent()來移除(IE9-IE10支持)
function removeEventListener(element,eventName,fn){
if(element.removeEventListener){
element.removeEventListener(eventName,fn);
} else if(element,detachEvent){
element.detachEvent("on"+eventName,fn);
}else{
element["on"+eventName]=null;
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/273554.html
標籤:其他
