为了账号安全,请及时绑定邮箱和手机立即绑定

为什么方法和属性直接不能用 || ?

为什么方法和属性直接不能用 || ?

清风流光 2017-05-04 13:44:03
getElement:function(event){ return event.target||event.srcElement; }, preventDefalt:function(event){ return event.preventDefault()||event.returnValue=false; },第二个无效 
查看完整描述

3 回答

已采纳
?
会飞的四脚蛇

TA贡献5条经验 获得超3个赞

你的函数写的有问题:

  1. 取消默认行为并不需要return值。

  2. 你的preventDefalt函数,如果运行,在现代浏览器中(非ie10及以下),只会执行event.returnValue=false;因为event.preventDefault()的结果是undefined---->执行event.returnValue=false,只是给event添加了一个属性returnValue,并赋值false;

而在ie10及以下中会报错的,event没有preventDefault属性, event.preventDefault()--->undefined()--->类型错误:Uncaught TypeError

可以这样写:

preventDefalt:function(event){
        if(event.preventDefault){
                event.preventDefault();
        }else{
                event.returnValue=false;
        }
    }


或者

preventDefalt:function(event){
        event.preventDefault?event.preventDefault():event.returnValue=false;
    }


查看完整回答
反对 回复 2017-05-04
?
清风流光

TA贡献8条经验 获得超0个赞

这题是送分的....

|| 的优先 =

先比较再等于

右边加个()就能运行了

查看完整回答
反对 回复 2017-05-04
  • 3 回答
  • 0 关注
  • 1600 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信