一些兼容问题的封装

1.事件委托的封装

function eveEnt(ele,cb){
        return function(eve){
            var e = eve || window.event;
            var target = e.target || e.srcElement;
            for(var i=0;i<ele.length;i++){
                if(target === ele[i]){
                    cb.bind(target)();
                }
            }
        }
    }
 
2事件监听的封装 针对IE和正常浏览器
添加
萨达
function addEvent(ele,myevent,cb){
        if(ele.attachEvent){
            ele.attachEvent("on"+myevent,cb)
        }else{
            ele.addEventListener(myevent,cb,false)
        }
    }
 
 addEvent(obox,"click",sayHello)
    function sayHello(){
        console.log("hello")
    }
删除
function removeEvent(ele,myevent,cb){
        if(ele.detachEvent){
            ele.detachEvent("on"+myevent,cb)
        }else{
            ele.removeEventListener(myevent,cb,false);
        }
    }
 
  removeEvent(obox,"click",sayHello)
 
 
3.事件冒泡 针对IE和正常浏览器
var e= eve || window.event;
if(e.stopPropagation){
  e.stopPropagation()
}else{
  e.cancelBubble = true
}
 
4.默认事件 针对IE和正常浏览器
var e= eve || window.event;
if(e.preventDefault){
  e.preventDefault();
}else{
  e.returnValue = false;
}
 
 
 
 
 
 
 
 
 
 
 
 
 
 

猜你喜欢

转载自www.cnblogs.com/2507148161----com/p/11826972.html