本文共 2258 字,大约阅读时间需要 7 分钟。
1 var eventUill = { 2 //添加事件 3 addHander: 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 removeHander: 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] = handler;20 }21 },22 //获取到拥有这个事件的标签名称——事件对象(如input)23 getEvent: function(event){24 return event?event:window.event;//注意:返回后需要调用。可配合nodeName,来单独获取到标签的名字。25 },26 //获取事件的类型27 getType: function(event){28 return event.type;//注意:返回后需要调用。29 },30 //获取事件来自于哪个元素31 getElement: function(event){32 return event.target || event.srcElement;33 },34 //阻止、取消事件的默认行为/属性发生35 preventDefault: function(event){36 if(event.preventDefault){37 event.preventDefault();38 }else{39 event.returnValue = null;40 }41 },42 //阻止冒泡行为43 stopPropagation: function(event){44 if(event.stopPropagation){45 event.stopPropagation();46 }else{47 event.cancelBubble = true;48 }49 }50 51 52 53 54 }
遇到的小bug总结:
以下是测试时的html文件,DOM2级事件-跨浏览器处理.js就是上面的js源码。
dom2级事件跨浏览器处理-封装库
转载地址:http://dvmml.baihongyu.com/