解决方案 »

  1.   

    (evt) ? evt : ((window.event) ? window.event : "")
    为什么evt也可以作为三目对象的判断条件,(evt)是[object KeyboardEvent]对象,
    为什么能在三目运算的判断中通过呢?
      

  2.   

    看这个http://www.cnblogs.com/wanyao/archive/2010/11/26/1889235.html
      

  3.   

    任何值为0、null、未定义或空字符串的表达式被解释为 false。 
      

  4.   

     evt = (evt) ? evt : ((window.event) ? window.event : "");  
     这么太麻烦了这么写就写了var obj_evt = evt || window.event;
    evt就代表事件对象event。如果有值就将event赋给obj_evt如果没有将window.event赋值给obj_evt
    所以说无论有没有值obj_evt最终都会被赋值成事件对象。因为在火狐当中inputNum(event)是没法直接传递过来的
    所以要有上面这句判断。当然event下面有好多属性可以用for in查看得到
     
      

  5.   

    function inputNum(evt){  
        evt = (evt) ? evt : ((window.event) ? window.event : "");  
    evt 是传入的变量
    在 ie 兼容浏览器中都为空
    非 ie 兼容浏览器中都为事件对象你那样写,冗余了,且不合理function inputNum(evt){  
        evt = evt || window.event;  
    就可以了
    并且按约定 window.event 中的 window 可省略,只写 event
    function inputNum(evt){  
        evt = evt || event;