【学习点滴-js】js 中事件对象封装。

来源:互联网 发布:淘宝众筹在哪 编辑:程序博客网 时间:2024/06/04 18:21

由于浏览器的差异。事件中的一些处理不得不出现大量这样类似的代码  var event = event?event:window.event;

这当然不是我们想要的,于是需要把常见的事件处理封装起来,便于我们方便地使用。

javascript 高级程序设计中封装代码如下:


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;}},/* 获取event对象的引用 */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(){if(element.removeEventListener){element.removeEventListener(type,handler,false);}else if(element.detachEvent){element.detachEvent("on"+type,handler);}else{element["on"+type] = null;}},/* 阻止事件流继续传播 */stopPropagation : function(event){if(event.stopPropagation){event.stopPropagation();}else{event.cancelBubble = true;}},/* 获取相关元素 */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;}},/*获取按键编码*/getCharCode : function(event){return (typeof event.charCode == "number")?event.charCode:event.keyCode;},//获取剪切板数据getClipboardText:function(event){var clipboardData = window.clipboardData || event.clipboardData;return clipboardData.getData("text");}};




原创粉丝点击