回顾基础之跨浏览器事件处理

var eventUtil = {
      //添加句柄
      addHandler:function(element,type,handler){
            if (element.addEventListener){              //DOM2级
                  element.addEventListener(type,handler,false);
            }else if (element.attachEvent){             //IE
                  element.attachEvent('on' + type, handler);
            }else {                                    //DOM0级
                  element['on' + type] = handler;
            }
      },
      //删除句柄
      removeHandler:function(element,type,handler){
            if (element.removeEventListener){
                  element.removeEventListener(type,handler,false);
            }else if (element.detachEvent){
                  element.detachEvent('on' + type, handler);
            }else {
                  element['on' + type] = null;
            }
      },
      getEvent:function(event) {
            //IE678中用window.event
            return event? event: window.event;
      },
      getType:function(event) {
            return event.type;
      },
      getElement:function(event){
            return event.target || event.srcElement;
      },
      preventDefault :function(event){
            if(event.preventDefault) {
                    event.preventDefault();
            }else {
                    event.returnValue = false;
            }
      },
      stopPropagation: function(event){
            if(event.stopPropagation){
                    event.stopPropagation();
            }else {
                    event.cancelBubble = true;
            }
      }
}


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容