2014-03-25 47 views
0

我已经得到了这一点,如果条件:if语句,尽管不是每一个条件触发见了

(48 - 57打字机数字,96 - 105适用于数字键盘)

if((e.ctrlKey && e.altKey) && ((e.keyCode > 47 && e.keyCode < 58)) || (e.keyCode > 95 && e.keyCode < 106)){ 
     console.log(e.altKey); 
    } 

这如果我不使用数字小键盘,而是使用打字机键,则工作正常。

但是,如果我按数字键盘上的CTRL +任何数量,条件会触发输出false到控制台

怎么会是这样?

+1

您有一个额外的')''后<58' –

+0

你使用keyup/keydown?据我所知,有分歧 –

回答

2

您的意思是?

(e.ctrlKey && e.altKey) && ((e.keyCode > 47 && e.keyCode < 58) || (e.keyCode > 95 && e.keyCode < 106)) 
+0

我应该去睡觉。谢谢。 – Sprottenwels

+1

+1 @Sprottenwels睡前接受答案如何:P – Leo

1

你可以试试这个:

if (
     (e.ctrlKey && e.altKey) 
     && (
      (e.keyCode > 47 && e.keyCode < 58) 
      || (e.keyCode > 95 && e.keyCode < 106) 
     ) 
    ) 
{ 
     console.log(e.altKey); 
} 

你有一个)后< 58至极是不是好地方