事件绑定3

获取事件中那个主对象旁边的离得最近相关对象
w3c标准

addEvent(window,'load',function()
{
    var spanDom=document.getElementById('box');
    
    addEvent(spanDom,'mouseover',function(e)
    {
        alert(e.relatedTarget);
    }
    );
}

);

ie标准的方法

ie标准的相关对象,鼠标移入mouseover 必须对应fromElement()鼠标移出mouseout 必须对应toElement()

addEvent(window,'load',function()
{
    var spanDom=document.getElementById('box');
    
    addEvent(spanDom,'mouseout',function(e)
    {
        alert(window.event.toElement);
    }
    );
}

);

两款浏览器兼容性解决

//两款浏览器兼容性解决
function getRelatedElement(e){
    
    var e=e.relatedTarget||window.event;
    if(e.srcElement)
    {
        if(e.type=='mouseover')
        return e.fromElement;
        if(e.type=='mouseout')
        {
           return e.toElement; 
        }
        
        
    }
    else if(e.relatedTarget)
    {
        return e.relatedTarget;
    }
    
}

用传统方式阻止浏览器默认行为

addEvent(window,'load',function()
{
    var a=document.getElementsByTagName('a')[0];
    a.onclick=function(){
        alert('qwe');
        return false;
        };
    }
);

w3c阻止默认行为

addEvent(window,'load',function()
{
    var a=document.getElementsByTagName('a')[0];
   addEvent(a,'click',function(e){
       
     e.preventDefault();
     alert('qaaa');
       
   });
    
    }
);

 

阻止默认行为的兼容

//阻止默认行为的兼容
function preventDft(e)
{
    var e=e||window.event;
    if(e.preventDefault)
      e.preventDefault();
      else 
      e.returnValue=false;
}

 

上下文菜单事件

addEvent(window,'load',function()
{
    var t=document.getElementsByTagName('textarea')[0];
   addEvent(t,'contextmenu',function(e){
       preventDft(e);
       
       var menu=document.getElementById('menu');
       menu.style.display='block';
       menu.style.left=e.clientX+'px';
      menu.style.top=e.clientY+'px'; 
       
       
     });
     }
);

卸载前事件,关于离开当前页面的事件

addEvent(window,'beforeunload',function(e)
{
    preventDft();

});

关于鼠标滚轮事件

//对于非火狐浏览器
addEvent(document,'mousewheel',function(e)
{
    alert(e.wheelDelta);//滚轮滚动度数

});
//对于火狐浏览器

addEvent(document,'DOMMouseScroll',function(e)
{
    alert(e.detail);//滚轮滚动度数

});

DOMContentLoaded readystatechange两个事件关于加载性能

 

posted @ 2016-05-09 21:39  公子子玉  阅读(194)  评论(0编辑  收藏  举报