Javascript学习笔记之事件篇
2008-05-28 17:26
846 查看
Javascript的事件处理,一直都是JS爱好者们比较感冒的一个核心技术,我也不例外,在此,将我对JS的事件处理理解的一些东西,分享给大家
//定义EventUtil对象 varEventUtil=newObject; //添加事件处理 EventUtil.addEventHandler=function(oTarget,sEventType,fnHandler){ if(oTarget.addEventListener){//firefox oTarget.addEventListener(sEventType,fnHandler,false); }elseif(oTarget.attachEvent){//IE oTarget.attachEvent("on"+sEventType,fnHandler); }else{//others oTarget["on"+sEventType]=fnHandler; } }; //删除事件处理 EventUtil.removeEventHandler=function(oTarget,sEventType,fnHandler){ if(oTarget.removeEventListener){//firefox oTarget.removeEventListener(sEventType,fnHandler,false); }elseif(oTarget.detachEvent){//IE oTarget.detachEvent("on"+sEventType,fnHandler); }else{//others oTarget["on"+sEventType]=null; } }; //事件格式化,将IE下的对象尽可能的调整为DOM的事件模型 EventUtil.formatEvent=function(oEvent){ varisIE=Validate_Browser("ie"); varisWin=Validate_System("win"); if(isIE&&isWin){ oEvent.charCode=(oEvent.type=="keypress")?oEvent.keycode:0; oEvent.eventPhase=2; oEvent.isChar=(oEvent.charCode>0); oEvent.pageX=oEvent.clientX+document.body.scrollLeft; oEvent.pageY=oEvent.clientY+document.body.scrollTop; oEvent.preventDefault=function(){ this.returnValue=false; }; if(oEvent.type=="mouseout"){ oEvent.relatedTarget=oEvent.toElement; }elseif(oEvent.Type=="mouseover"){ oEvent.relatedTarget=oEvent.fromElement; } oEvent.stopPropagation=function(){ this.cancelBubble=true; }; oEvent.target=oEvent.srcElement; oEvent.time=(newDate()).getTime(); } returnoEvent; }; //获得事件对象 EventUtil.getEvent=function(){ if(window.event){ returnthis.formatEvent(window.event); }else{ returnEventUtil.getEvent.caller.arguments[0]; } }; //加载窗体的同时,给对象附加事件处理函数 EventUtil.addEventHandler(window,"load",function(){ varoDiv=document.getElementById("divObj"); varoDivDel=document.getElementById("divDel"); EventUtil.addEventHandler(oDiv,"mouseover",handleEvent); EventUtil.addEventHandler(oDiv,"mouseout",handleEvent); EventUtil.addEventHandler(oDiv,"mousedown",handleEvent); EventUtil.addEventHandler(oDiv,"mouseup",handleEvent); EventUtil.addEventHandler(oDiv,"click",handleEvent); EventUtil.addEventHandler(oDiv,"dblclick",handleEvent); EventUtil.addEventHandler(oDivDel,"click",RemoveEvent); }); functionRemoveEvent(){ varoDiv=document.getElementById("divObj"); varoDivDel=document.getElementById("divDel"); EventUtil.removeEventHandler(oDiv,"mouseover",handleEvent); EventUtil.removeEventHandler(oDiv,"mouseout",handleEvent); EventUtil.removeEventHandler(oDiv,"mousedown",handleEvent); EventUtil.removeEventHandler(oDiv,"mouseup",handleEvent); EventUtil.removeEventHandler(oDiv,"click",handleEvent); EventUtil.removeEventHandler(oDiv,"dblclick",handleEvent); EventUtil.removeEventHandler(oDivDel,"click",RemoveEvent); varoTextMsg=document.getElementById("oTextMsg");
oTextMsg.value="附加事件已经清除";
} functionhandleEvent(){ try{ varoEvent=EventUtil.getEvent(); varoTextMsg=document.getElementById("oTextMsg"); oTextMsg.value=""; oTextMsg.value+="/n>"+oEvent.type; oTextMsg.value+="/n targetis"+oEvent.target.tagName; if(oEvent.relatedTarget){ oTextMsg.value+="/n relatedTargetis"+oEvent.relatedTarget.tagName; } }catch(e){ alert(e.toString()); //这个异常,等待解决 } }
下面放入HTML代码
<divstyle="background:#336600;width:200px;"id="divObj">AddEvent</div>
<divstyle="background:#99FF00;width:200px;"id="divDel">RemoveEvent(whenonclick)</div>
<textareaid="oTextMsg"cols="60"rows="10"></textarea>
相关文章推荐
- JavaScript学习笔记之事件
- 1.javascript中的事件处理程序【学习笔记】
- 韩顺平 javascript教学视频_学习笔记27_dom对象(window对象3.history.location.navigator.screen.event)_js事件驱动编程
- JavaScript学习笔记之常用的事件
- Javascript学习指南(第2版)笔记(四) 表单、表单事件及校验
- JavaScript高级程序设计 事件学习笔记
- JavaScript学习笔记之JS事件对象
- 学习笔记---Javascript事件Event、IE浏览器下的拖拽效果
- 韩顺平 javascript教学视频_学习笔记23_js事件驱动机制深入理解_js常用事件_js版计算器
- JavaScript学习笔记之事件冒泡和事件捕获
- JavaScript高级程序设计学习笔记--事件(二)(事件对象--DOM中的事件对象/IE中的事件对象/跨浏览器的事件对象)
- Javascript学习笔记13——关于响应事件
- JavaScript学习笔记——事件
- JavaScript 学习笔记(十六) js事件
- JavaScript 学习笔记— —事件委托
- javascript学习笔记 第13章 事件
- JavaScript学习笔记之共享onload事件
- JavaScript事件学习笔记
- javascript学习笔记(五)--事件
- 前端学习笔记--JavaScript--DOM事件探秘