【问题标题】:If-statement triggering despite not every condition met尽管不是每个条件都满足,但 if 语句触发
【发布时间】:2014-03-25 16:57:17
【问题描述】:

如果条件我有这个:

(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 输出到控制台

怎么可能?

【问题讨论】:

  • 你在&lt; 58之后多了一个)
  • 你在使用 keyup/keydown 吗?据我所知,存在差异

标签: javascript if-statement


【解决方案1】:

你的意思是?

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

【讨论】:

  • 我该去睡觉了。谢谢。
  • +1 @Sprotenwels 睡前接受答案怎么样:P
【解决方案2】:

你可以试试这个吗:

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

【讨论】:

    最近更新 更多