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的新手。 我正在等待解决方案...... 请帮帮我!!
答案 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('*')
}