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

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

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

慕的地10843
浏览 361回答 3
3回答

GCT1015

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

弑天下

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

慕桂英546537

这样写很好啊,这些代码不是楼主自己写的吗?
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript