web前端:JavaScript-跨浏览器事件处理程序(EventUtil)

    作者:BrandBao 更新于: 2020-03-31 20:58:47

    Web开发

      事件对象属于内核对象,它包含一个使用计数,一个用于标识该事件是一个自动重置还是一个人工重置的布尔值,和另一个用于指定该事件处于已通知状态还是未通知状态的布尔值。

      由上面所述,可见事件对象可分为两种,一种是人工重置的,另一种是自动重置的。当人工重置的事件得到通知时,等待该事件的所有线程均变为可调度线程。而当一个自动事件得到通知时,等待该事件的所有线程中只有一个线程变为可调度线程。

      Javascript-跨浏览器事件处理程序(EventUtil)

      事件操作对象:

      varEventUtil={

      //添加事件

      addHandler:function(element,type,handler){

      if(element.addEventListener){

      element.addEventListener(type,handler,false);

      }elseif(element.attachEvent){//IE

      element.attachEvent("on"+type,handler,false);

      }else{

      element["on"+type]=handler;

      }

      },

      //移除对象

      removeHandler:function(element,type,handler){

      if(element.removeEventListener){

      element.removeEventListener(type,handler,false);

      }elseif(element.detachEvent){//IE

      element.detachEvent("on"+type,handler,false);

      }else{

      element["on"+type]=null;

      }

      },

      //获取事件对象

      getEvent:function(event){

      returnevent?event:window.event;

      },

      //获取目标对象

      getTarget:function(event){

      returnevent.target||event.srcElement;

      },

      //取消默认事件

      preventDefault:function(event){

      if(event.preventDefault){

      event.preventDefault();

      }else{

      event.returnValue;

      }

      },

      //停止冒泡

      stopPropagation:function(event){

      if(event.stopPropagation){

      event.stopPropagation();

      }else{

      event.cancelBubble=true;

      }

      }

      };

      创建事件对象,可以调用WindowsAPI中的CreateEvent。它可以创建一个有名的或匿名的事件对象。

课课家教育

未登录