attachEvent、addEventListener、detachEvent、removeEventListener
1、 attachEvent、addEventListener:添加事件对象
detachEvent、removeEventListener:注销事件对象
2、 attachEvent、addEventListener
A、 适应的浏览器版本不同,attachEvent为IE,addEventListener为ff
B、 attachEvent方法用onclick,addEventListener方法用click
C、 执行的优先级不一样
3、 详细
object.attachEvent(event,function);
element.addEventListener(type,listener,useCapture);
如果这样写,那么将会只有medhot3被执行:
document.getElementById("btn").onclick = method1;
document.getElementById("btn").onclick = method2;
document.getElementById("btn").onclick = method3;
ie下,写成这样:
var btn1Obj = document.getElementById("btn1");
btn1Obj.attachEvent("onclick",method1);
btn1Obj.attachEvent("onclick",method2);
btn1Obj.attachEvent("onclick",method3)
执行顺序为method3->method2->method1
Ff下,写成这样:
var btn1Obj = document.getElementById("btn1");
btn1Obj.addEventListener("click",method1,false);
btn1Obj.addEventListener("click",method2,false);
btn1Obj.addEventListener("click",method3,false);
执行顺序为method1->method2->method3
4、 实例
A、 var el = EDITFORM_DOCUMENT.body;
//先取得对象,EDITFORM_DOCUMENT实为一个iframe
if(el.addEventListener){
el.addEventListener('click', KindDisableMenu, false);
}else if(el.attachEvent){
el.attachEvent('onclick', KindDisableMenu);
}
B、 if(window.addEventListener){
window.addEventListener('load', _uCO, false);
}else if(window.attachEvent){
window.attachEvent('onload', _uCO);
}