美文网首页
javascript实现通用的事件侦听器函数

javascript实现通用的事件侦听器函数

作者: 不落誓言 | 来源:发表于2017-06-13 12:42 被阅读0次
    // 把所有方法封装到一个对象里面,充分考虑兼容写法
    var EventUtil = {
      // 添加DOM事件
      addEvent: function(element, type, handler) {
        if(element.addEventListener) { //DOM2级
          element.addEventListener(type, handler, false);
        }else if(element.attachEvent) {  //IE
          element.attachEvent("on"+ type, handler);
        }else {
          element["on" + type] = handler;
        }
      },
      // 移除DOM事件
      removeEvent: function(element, type, handler) {
        if(element.removeEventListener) { //DOM2级
          element.removeEventListener(type, handler, false);
        }else if(element.detachEvent) {  //IE
          element.detachEvent("on"+ type, handler);
        }else {
          element["on" + type] = null;
        }
      },
      // 阻止事件冒泡
      stopPropagation: function(ev) {
        if(ev.stopPropagation) {
          ev.stopPropagation();
        }else {
          ev.cancelBubble = true;
        }
      },
      // 阻止默认事件
      preventDefault: function(ev) {
        if(ev.preventDefault) {
          ev.preventDefaule();
        }else {
          ev.returnValue = false;
        }
      },
      // 获取事件源对象
      getTarget: function(ev) {
        return event.target || event.srcElement;
      },
      // 获取事件对象
      getEvent: function(e) {
        var ev = e || window.event;
        if(!ev) {
          var c = this.getEvent.caller;
          while(c) {
            ev = c.arguments[0];
            if(ev && Event == ev.constructor) {
              break;
            }
            c = c.caller;
          }
        }
        return ev;
      }
    };
    

    相关文章

      网友评论

          本文标题:javascript实现通用的事件侦听器函数

          本文链接:https://www.haomeiwen.com/subject/rzsdqxtx.html