您的位置:首页 > Web前端 > JavaScript

js 添加事件 attachEvent和addEventListener 使用方法

2012-08-16 14:50 1171 查看
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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息