编写一个通用的事件监听函数

var Event = {
    // 页面加载完成后
    readyEvent : function  (fn) {
      if (fn == null) {
          fn = document;
      }
      var oldonload = window.onload;
      if (typeof window.onload != 'function') {
          window.onload = fn ;
      }else{
          window.onload = function  () {
            oldonload();
            fn();
          }
      };
    },
    //添加事件
    addEvent : function(element, type, hander) {
      if (element.addEventListener) {        //非IE
               //事件类型、需要执行的函数、是否捕捉
          element.addEventListener(type, hander, false);
      }else if(element.attachEvent){        //IE
          element.attachEvent('on' + type,function  () {
              hander.call(element);
          })
      }else{
          element['on' +type] = hander;
      };
    },
    //移除事件
    removeEvent : function  (element, type, hander) {
      if (element.removeEventListener) {
          element.removeEventListener(type, handler, false)
      }else if (element.attachEvent) {
          element.attachEvent('on' + type, hander);
      }else{
          element['on' + type] = null;
      };
    },
    //阻止事件
    stopPropagation : function  (event) {
      if (event.stopPropagation) {
          event.stopPropagation();    //W3C标准
      }else{
          event.canceBubble = true;   //IE
      };
    },
    //取消默认事件
    preventDefault : function (event) {
      if (event.preventDefault) {
            event.preventDefault();
      };
    },
    //获取事件目标
    getTarget : function (event) {
      return event.target|event.srcElement;
    },
    //获取event对象的引用,取到事件的所有信息,确保随时能使用event;
    getEvent:function (event) {
      var event = event || window.event;
      if (!event) {
          var c = this.getEvent.caller;
          while(!c){
              event = c.arguments[0];
              if (event && Event == ev.constructor) {
                  break;
              };
              c = c.caller;
          }
      };
      return event;
    }    
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值