addEventListener和attachEvent区别

addEventListener()是标准的绑定事件监听函数的方法,是W3C所支持的,Chrome、FireFox、Opera、Safari、IE9.0及其以上版本都支持该函数;但是,IE8.0及其以下版本不支持该方法,它使用attachEvent()来绑定事件监听函数。所以,这种绑定事件的方法必须要处理浏览器兼容问题。

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title></title>
 6     <style type="text/css">
 7 
 8     </style>
 9 </head>
10 <body>
11 <button id="myBtn">点击</button>
12 <p id="demo"></p>
13 <script type="text/javascript">
14     var E = {
15         /***
16          * 在主流浏览器中
17          * element.addEventListener(type, fn, false);
18          * @param element 文档节点 document window XMLHttpRequest
19          * @param type 字符串,事件名称,不含"on~", 比如"click", "mousemove", "keydown"
20          * @param useCapture 是否使用捕捉,一般用 false.
21          * 在低版本的IE浏览器中
22          * element.attachEvent("onclick", fn);
23          *  @param type 字符串,事件名称,含"on~",比如"onclick", "onmousemove", "onkeydown"
24          *  @param fn 实现了EventListener接口或者是JavaScript中的函数
25          */
26         add: function (element, type, fn) {
27             if(element.addEventListener){
28                 element.addEventListener(type, fn, false);//第三个参数默认值为false,所以如果不写其值默认为false
29             }else if(window.attachEvent){
30                 element.attachEvent("onclick", fn);
31             }
32         }
33     };
34     var element = document.getElementById("myBtn");
35     function showText(){
36         document.getElementById("demo").innerHTML = "你点击了这个按钮!";
37     }
38     E.add(element, 'click', showText);
39 </script>
40 </body>
41 </html>
posted @ 2016-10-09 13:53  SkyTeam_LBM  阅读(335)  评论(0编辑  收藏  举报