在一个通用的事件模块中有这几个方法:
getEvent:function(event){
return event?event:window.event;
},
getTarget:function(event){
return event.target||event.srcElement;
},
preventDefault:function(event){
if(event.preventDefault){
event.preventDefault();
}else{
event.returnValue=false;
}
},
stopPropagation:function(event){
if(event.stopPropagation){
event.stopPropagation();
}else{
event.cancelBubble=true;
}
虽然都是检测支持哪个属性(方法),然后得这个支持的属性(方法),但使用的方法不一样。分别是 ? || 和if(),这三种方法有什么 区别?比如第一个能不能写成
return event||window.event
对第一个回答的补充。如果是函数名可以|| ?,来判断函数是否存在。但是执行过的函数就是判断返回值并赋值,若两个函数都没有返回值的话就是undefined了。所以阻止默认和冒泡的就不可以。
前两个可以用return event||window.event,return event.target||event.srcElement,后面的两个(阻止默认行为和阻止冒泡不行)
这样写很好啊,这些代码不是楼主自己写的吗?