事件兼容方法

ie                      w3c
window.event     event
srcElement         target                     事件源
returnValue        preventDefault             取消给定事件的默认行为
cancelBubble       stopPropagation            停止事件冒泡
attachEvent        addEventListener           绑定多个事件
detachEvent        removeEventListener        移除多个事件


eg:

W3C addEventListener(事件,函数,布尔) removeEventListener(事件,函数,布尔)this作用域是当前元素
ie attachEvent(事件处理程序名称,函数)  detachEvent(); this作用域是window

btn.addEventListener("click",function(){alert(this.id)},false);
btn.addEventListener("click",function(){alert("hello")},false);
btn.removeEventListener()//不能移除匿名函数

//跨浏览器方法:
//获取事件对象
function getEvent(event){
    return event?event:window.event;

}
//获得事件源
function getTarget(event){
    return event.target||event.srcElement;
}
//取消默认行为
function preventDefault(event){
    if(event.preventDefault){
        event.preventDefault();
    }else{
        event.returnValue=false;
    
    }
}
//阻止事件冒泡
function stopPropagation(event){
    if(event.stopPropagation){
        event.stopPropagation();
    }else{
        event.cancelBubble=true;
    }
}
//获取相关元素

function getRelatedTaarget(event){

    if(event.relatedTarget){
        return event.relatedTarget;
        
    }else if(event.toElement){//ie mouseout的相关元素
        return event.toElement
    
    }else if(event.fromElement){//ie mouseover的相关元素
        return event.fromElement
    
    }else{
        return null;
    }
}

posted on 2013-02-28 18:28  小猕儿  阅读(296)  评论(0编辑  收藏  举报

导航