在keyEvent中,我怎样才能抓住密钥" *"?

时间:2015-01-17 17:59:52

标签: javascript angularjs key

    if(keyEvent.keyCode == 8){
        $scope.erase();
    }

    else if(keyEvent.keyCode === 107){
    console.log("+");
    $scope.inputToCal('+')
    }

    else if(keyEvent.keyCode === 109){
    console.log("-");
    $scope.inputToCal('-')
    }

    else if(keyEvent.keyCode === 16){
    console.log("*");
    $scope.inputToCal('*')
}
    }

    else if(keyEvent.keyCode === 111){
    console.log("/");
    $scope.inputToCal('/')
    }

我试图制作一个能够抓住“keydown”的计算器。

我可以抓住这些键,“+”,“ - ”,“/”。

这些密钥代码为“107”,“109”,“111”

然而,有一个问题。

我无法抓住钥匙“*”。

有没有解决这个问题的方案?

或者,我是否必须定义新数组以捕获键“Shift”(keyCode:16)和“8”(keyCode:56)?

抱歉,我是关于keyEvent的新手。 我正在等待解决方案...... 请帮帮我!!

1 个答案:

答案 0 :(得分:0)

您必须单独处理shift键。

function handleKeyDown(e) {
 var shiftPressed=0;
 var event = (e==null ? event:e);
 shiftPressed=event.shiftKey;
 if ((shiftPressed)&& (event.keyCode==56)) 
   alert ("You pressed * key");
 return true;
}

演示:http://jsfiddle.net/soxj0v54/1/

对于您的代码,它看起来像 -

else if(keyEvent.keyCode === 56 && keyEvent.shiftKey){
    console.log("*");
    $scope.inputToCal('*')
}