javascript 跨浏览器事件处理
2016-12-26 17:27
281 查看
<div id="myDiv" style="width:100px; height:100px; border:1px solid #f00;"></div>
<script> /** * 跨浏览器事件处理 **/ var EventUtil = { //添加事件 addHandler:function(element, type, handler){ if(element.addEventListener){ element.addEventListener(type, handler, false); }else if(element.attachEvent){ element.attachEvent("on"+type,handler); }else{ element["on" + type] = handler; } }, //获取事件对象 getEvent:function(event){ return event ? event : window.event; }, //获取元素对象 getTarget:function(event){ return event.target || event.srcElement; }, //删除默认事件 preventDefault:function(event){ if(event.preventDefault){ event.preventDefault(); }else{ event.returnValue = false; } }, //删除事件 removeHandler:function(element, type, handler){ if(element.removeEventListener){ element.removeEventListener(type, handler, false); }else if(element.detachEvent){ element.detachEvent("on" + type, handler); }else{ element["on" + type] = null;s } }, //阻止事件冒泡 stopPropagation:function(event){ if(event.stopPropagation){ event.stopPropagation(); }else{ event.cancelBubble = true; } }, //获取相关元素(mouseove和mouserout事件可能用的到) getRelatedTarget:function(event){ if(event.relatedTarget){ return event.relatedTarget; }else if(event.toElement){ return event.toElement; }else if(event.fromElement){ return event.fromElement; }else{ return null; } } }; /** * 使用方法实例 **/ var myDiv = document.getElementById("myDiv"); //添加事件 EventUtil.addHandler(myDiv, 'click',addEventFun); //删除事件 //EventUtil.removeHandler(myDiv, 'click', addEventFun); function addEventFun(event){ //获取事件对象event var eventName = EventUtil.getEvent(event); console.log(eventName); //获取元素对象 var elementTarget = EventUtil.getTarget(event); console.log(elementTarget); //删除默认事件 EventUtil.preventDefault(event);//比如a的href跳转 //阻止事件冒泡 EventUtil.stopPropagation(event);//比如body也有click事件,则不执行body的click } </script>
相关文章推荐
- javascript打造跨浏览器事件处理机制[Blue-Dream出品]
- Javascript跨浏览器处理键盘事件keydown,keypress,keyup
- javascript 句柄 --DOM事件处理及跨浏览器处理
- JavaScript跨浏览器处理事件以及相关对象
- javascript 跨浏览器事件处理
- 详细解读JavaScript的跨浏览器事件处理
- Javascript之跨浏览器的事件处理程序
- JavaScript跨浏览器处理事件方法(封装成对象)
- javascript打造跨浏览器事件处理机制[Blue-Dream出品]
- 跨浏览器的事件处理方法(Professional JavaScript for Web Developers)
- javascript打造跨浏览器事件处理机制:详解
- JavaScript Wheel Event - 使用JavaScript处理浏览器的鼠标滑轮事件
- 常见的原生javascript事件处理与浏览器兼容问题(上)
- 跨浏览器的JavaScript事件处理[JavaScript高级程序设计]
- 具有跨浏览器兼容的事件处理javascript脚本
- javascript浏览器兼容教程之事件处理
- javascript浏览器兼容教程之事件处理
- javascript之跨浏览器的事件处理详解
- 常见的原生javascript事件处理与浏览器兼容问题(下)
- 详解javascript跨浏览器事件处理程序