2015-01-17 3 views
0
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"을 잡는 계산기를 만들려고했다.keyEvent에서 "*"키를 어떻게 잡을 수 있습니까?

"+", "-", "/"키를 잡을 수 있습니다.

이러한 키 코드 "111"

하지만, 한 가지 문제점이 "107", "109"가있다.

"*"키를 잡을 수 없습니다.

이 문제를 해결할 수있는 해결책이 있습니까?

또는 "Shift"(keyCode : 16) 및 "8"(keyCode : 56) 키를 잡기 위해 새 배열을 정의해야합니까?

죄송합니다. keyEvent에 관한 초보자입니다. 해결책을 기다리고 있습니다 ... 도와주세요!

+1

로 삼았 모양을 누르면 할 – adeneo

답변

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; 
} 

데모 : 당신은 당신이 변화를 요구하는 문자를 잡을 겁니다 대신 keypress``사용하는 경우 코드에 대한 http://jsfiddle.net/soxj0v54/1/

그것이

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

감사합니다! !! !! 너 내가 도와 줬어! – nujabes

관련 문제