javascript事件模型简单框架

view plaincopy to clipboardprint? var EventUtil = new Object; /**//*    此方法用来给特定对象添加事件,oTarget是指定对象,sEventType是事件类型,如click、keydown等,     fnHandler是事件回调函数 /* EventUtil.addEventHandler = function (oTarget, sEventType, fnHandler) {      //firefox情况下      if (oTarget.addEventListener) {          oTarget.addEventListener(sEventType, fnHandler, false);      }      //IE下      else if (oTarget.attachEvent) {          oTarget.attachEvent(“on” + sEventType, fnHandler);      }      else {          oTarget["on" + sEventType] = fnHandler;      } }; /*    此方法用来移除特定对象的特定事件,oTarget是指定对象,sEventType是事件类型,如click、keydown等,fnHandler是事件回调函数 /* EventUtil.removeEventHandler = function (oTarget, sEventType, fnHandler) {      if (oTarget.removeEventListener) {          oTarget.removeEventListener(sEventType, fnHandler, false);      } else if (oTarget.detachEvent) {          oTarget.detachEvent(“on” + sEventType, fnHandler);      } else {          oTarget["on" + sEventType] = null;      } }; /* 格式化事件,因为IE和其他浏览器下获取事件的方式不同并且事件的属性也不尽相同,通过此方法提供一个一致的事件 */ EventUtil.formatEvent = function (oEvent) {      //isIE和isWin引用到一个js文件,判断浏览器和操作系统类型      if (isIE && isWin) {          oEvent.charCode = (oEvent.type == ”keypress”) ? oEvent.keyCode : 0;          //IE只支持冒泡,不支持捕获          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;          };           //将toElement,fromElement转化为标准的relatedTarget          if (oEvent.type == ”mouseout”) {              oEvent.relatedTarget = oEvent.toElement;          } else if (oEvent.type == ”mouseover”) {              oEvent.relatedTarget = oEvent.fromElement;          } [...]

阅读更多

JS阻止事件默认事件和事件冒泡

看代码便知 view plaincopy to clipboardprint? <meta http-equiv=”content-type” content=”text/html;charset=utf-8″> <div id=”test”>         <a href=”http://www.baidu.com” id=”link”>测试</a>     </div> <script type=”text/javascript”> var objlink=document.getElementById(‘link’); objlink.onclick=function(event){                 //阻止默认事件                 if(event)                     event.preventDefault()                 else                     window.event.returnValue=false;                 //end                 //阻止事件冒泡                 if(event)                     event.stopPropagation();                 else                     window.event.cancelBubble=true;                 //end                 alert(‘阻止默认事件’);         } var objtest=document.getElementById(‘test’); objtest.onclick=function(){                 alert(‘test’);             }; </script>

阅读更多

JavaScript正则表达式详解

创建正则式 Js代码 view plaincopy to clipboardprint? //1、创建RegExp对象 var regExp = new RegExp(‘cat’,’img’); //2、字面量方式 regExp = /cat/img; <span id=”more-113″></span> 正则表达式特殊字符 在正则表达式中,许多标点符号都有特殊的含义,它们是: ! $ ^ & * ( ) + { } | : ? – = [ ] . / \ 预定义类 代码 等同于 匹配 . [^\n\r] 除了换行和回车之外的任意字符 \d [0-9] 数字 \D [^0-9] 非数字字符 \s [ \t\n\x0B\f\r] 空白字符 \S [^ \t\n\x0B\f\r] 非空白字符 \w [a-zA-Z_0-9] [...]

阅读更多