attachEvent与addEventListener区别

target.addEventListener(type, listener, useCapture);
target
文档节点、document、window 或 XMLHttpRequest。
type
字符串,事件名称,不含“on”,比如“click”、“mouseover”、“keydown”等。
listener
实现了 EventListener 接口或者是 JavaScript 中的函数。
useCapture
是否使用捕捉,看了后面的事件流一节后就明白了,一般用 false

事件触发时,会将一个 Event 对象传递给事件处理程序,比如:
document.getElementById("testText").addEventListener("keydown", function (event) { alert(event.keyCode); }, false);

适应的浏览器版本不同,同时在使用的过程中要注意
attachEvent方法          按钮onclick       IE中使用
addEventListener方法    按钮click       fox中使用


两者使用的原理:可对执行的优先级不一样,下面实例讲解如下:
attachEvent方法,为某一事件附加其它的处理事件。(不支持Mozilla系列)
addEventListener方法 用于 Mozilla系列

举例: document.getElementById("btn").onclick = method1;
document.getElementById("btn").onclick = method2;
document.getElementById("btn").onclick = method3;如果这样写,那么将会只有medhot3被执行

写成这样:
var btn1Obj = document.getElementById("btn1"); //object.attachEvent(event,function);
btn1Obj.attachEvent("onclick",method1);
btn1Obj.attachEvent("onclick",method2);
btn1Obj.attachEvent("onclick",method3);执行顺序为method3->method2->method1

如果是Mozilla系列,并不支持该方法,需要用到addEventListener var btn1Obj = document.getElementById("btn1");
//element.addEventListener(type,listener,useCapture);
btn1Obj.addEventListener("click",method1,false);
btn1Obj.addEventListener("click",method2,false);
btn1Obj.addEventListener("click",method3,false);执行顺序为method1->method2->method3

实例:(要注意的是div必须放到js前面才行)

 

代码
< html >
< head >
</ head >
< body >
< div  id ="name1"  style ="border:1px solid red;padding:10px 10px 10px 10px;" >
< div  id ="name2"  style ="border:1px solid green;padding:10px 10px 10px 10px;" > 点击 </ div >
</ div >
< div  id ="info" ></ div >
< script >
var  name1 = document.getElementById( ' name1 ' );  // 要注意
var  name2 = document.getElementById( ' name2 ' );  // 要注意
var  info = document.getElementById( ' info ' );
if (name1.attachEvent){  // 对于attachEvent前面的target我们一定要保证不为空
name1.attachEvent( ' onclick ' , function  () { info.innerHTML  +=   " 红色 "   +   " <br> " ; });
name2.attachEvent(
' onclick ' , function  () { info.innerHTML  +=   " 绿色 "   +   " <br> " ; });
}
else {
name1.addEventListener(
' click ' , function  () { info.innerHTML  +=   " 红色 "   +   " <br> " ; }, false );
name2.addEventListener(
' click ' , function  () { info.innerHTML  +=   " 绿色 "   +   " <br> " ; }, false );
}
</ script >
</ body >
</ html >

 

 

你可能感兴趣的:(attachEvent)