学习笔记:DOM事件中的IE兼容性处理办法

2017-03-13  本文已影响0人  yang走向前端

事件绑定兼容处理封装,由于.attrachEvent()方法中,this指向window,需要作如下处理:

function  addEvent(node,type,handler){
     if(!node) return false;
     if(node.addEventListener){
            node.addEventListener(type,handler,false);
            return true;
     }
     if(node.attrachEvent){
            node['e'+type+handler]=handler;
            node[type+handler]=function(){
                node['e'+type+handler]=handler(window.event); 
            }
            node.attrachEvent("on"+type,node[type+handler]);
            return true;
     }
    return false;
}

解除事件绑定,在使用了上面的兼容绑定方法后,可使用下面的封装:

function  removeEvent(node,type,handler){
     if(!node) return false;
     if(node.removeEventListener){
            node.removeEventListener(type,handler,false);
            return true;
     }
     if(node.detachEvent){
            node.detachEvent("on"+type,node[type+handler]);
            node[type+handler]=null;
            return true;
     }
    return false;
}

获取事件:

function getEvent(e){
return e||window.event;
}

阻止事件冒泡:

function stopPropagation(e){
   if(e.stopPropagation){
      e.stopPropagation();
 }else{
     e.cancelBubble=true;
 }
}

阻止默认事件

function preventDefault(){
    if(e.preventDefault){
         e.preventDefault();
  }else{
        e.returnValue=true;
 }
}

目标对象:

function target(){
   return e.target||e.srcElement;
}
上一篇 下一篇

猜你喜欢

热点阅读