var evt =(evt)是什么意思? evt :((event)?event:null);?

时间:2015-08-01 22:14:20

标签: javascript

第2行和第3行中代码的含义是什么? 我想了解它。感谢。

   function stopRKey(evt) { 
      var evt = (evt) ? evt : ((event) ? event : null); 
      var node = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null); 
      if ((evt.keyCode == 13) && (node.type=="text"))  {
        addItemToList();
        return false;} 
    } 

    document.onkeypress = stopRKey; 

2 个答案:

答案 0 :(得分:0)

?:是三元运营商。请查看here

var a = (b === true) ? 1 : 0;

转换为

if (b === true)
    var a = 1;
else
    var a = 0;

var evt = (evt) ? evt : ((event) ? event : null);

表示如果evt真实,var evt = evt(不做任何更改)。

如果不是,(evt == nullevt === false等),如果event是真实的,请将其指定给event。否则将其分配给null

答案 1 :(得分:0)

var evt = (evt) ? evt : ((event) ? event : null);

以上意思是: 如果evt是真的,evt仍然是真的。否则,如果它是假的,那么检查事件是否为真。如果event为false,则将evt设置为event,将evt设置为null。

var node = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);

上述方法 如果evt.target为true,则将node设置为evt.target else,如果为false,则检查evt.srcElement。如果为true,则将node设置为evt.srcElement,如果它为false,则将node设置为null

这种类型的代码使用三元运算符。