鉴于IE的特殊性,我们可以考虑封装一个解决IE兼容性的事件处理对象..

封装之后,我们再来调用

 1 var eventUtil={
 2             //添加句柄
 3             addHandler:function(element,type,handler){
 4                 if(element.addEventListener){
 5                     element.addEventListener(type,handler,false);
 6                 }else if(element.attachEvent){
 7                     element.attachEvent("on"+type,handler);
 8                 }else{
 9                     element["on"+type]=handler;
10                 }
11             },
12             //移除句柄
13             removeHandler:function(element,type,handler){
14                 if(element.removeEventListener){
15                     element.removeEventListener(type,handler,false);
16                 }else if(element.detachEvent){
17                     element.detachEvent("on"+type,handler);
18                 }else{
19                     element["on"+type]=null;
20                 }
21             },
22             //获得事件
23             getEvent:function(event){
24                 return event?event:window.event;
25             },
26             //获得事件的类型
27             getType:function(event){
28                 return event.type;
29             },
30             //获得事件来自哪个元素
31             getElement:function(){
32                 return event.target||event.srcElement;
33             },
34             //阻止默认的行为
35             preventDefault:function(event){
36                 if(event.preventDefault){
37                     event.preventDefault();
38                 }else{
39                     event.returnValue=false;
40                 }
41             },
42             //阻止事件的冒泡行为
43             stopPropagation:function(){
44                 if(event.stopPropagation){
45                     event.stopPropagation();
46                 }else{
47                     event.cancelBubble();
48                 }
49             }
50         }
不积小流,无以成江河!记住一万个小时定律!
原文地址:https://www.cnblogs.com/Ed-song/p/7711301.html