通用事件监听器

主要解决垮浏览器问题

my.Event={

//页面加载完成后:

readyEvent:function(fn){

if(fn==null){

fn=document;

}

oldOnload=window.onload();

if(typeof window.onload!=='function'){

window.οnlοad=fn;

}else{

window.οnlοad=function(){

oldOnload();

fn();

};

}

},

//绑定事件:

addEvent:function(element,type,handler){

if(element.addEventListener){

element.addEventListener(type,handler,false);

}else if(element.attachEvent){

element.attachEvent('on'+type,handler);

}else{

element['on'+type]=handler;

}

},

//移除事件:

removeEvent:function(element,type,handler){

if(element.removeEventListener){

element.removeEventListener(type,handler,false);

}else if(element.datachEvent){

element.datachEvent('on'+type,handler);

}else{

element['on'+type]=null;

}

},

//阻止事件(主要阻止冒泡,因为IE不支持事件捕获):

preventDefalt:function(event){

if(event.preventDefalt){

event.preventDefalt();

}else{

event.returnValue=false;

}

},

//获取事件目标:

getTarget:function(event){

return event.target||event.srcElement;

},

//获取event对象的引用,取到事件的所有信息,确保随时能够使用event:

getEvent:function(e){

var ev=e||window.event;

if(!ev){

var c=this.getEvent.caller;

while(c){

ev=c.arguments[0];

if(ev&&Event==ev.constructor){

break;

}

c=c.caller;

}

}

return ev;

}

};

P.S.  对于var c=this.getEvent.caller;

参看:http://www.jb51.net/article/42691.htm


转载于:https://my.oschina.net/u/2618661/blog/628777

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值