首页 新闻 会员 周边 捐助

关于IE兼容事件监听~检测浏览器所支持的属性(或者方法),并获取。

0
悬赏园豆:30 [已解决问题] 解决于 2015-12-25 23:08

在一个通用的事件模块中有这几个方法:

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

mikou的主页 mikou | 初学一级 | 园豆:161
提问于:2015-05-31 19:33
< >
分享
最佳答案
0

对第一个回答的补充。如果是函数名可以|| ?,来判断函数是否存在。但是执行过的函数就是判断返回值并赋值,若两个函数都没有返回值的话就是undefined了。所以阻止默认和冒泡的就不可以。

mikou | 初学一级 |园豆:161 | 2015-12-25 23:06
其他回答(2)
0

前两个可以用return event||window.event,return event.target||event.srcElement,后面的两个(阻止默认行为和阻止冒泡不行)

收获园豆:20
豆瓣绿 | 园豆:237 (菜鸟二级) | 2015-06-16 13:19
0

这样写很好啊,这些代码不是楼主自己写的吗?

收获园豆:10
脚本王子 | 园豆:779 (小虾三级) | 2015-12-25 22:15
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册