2014-07-07 3 views
-1

작은 타자기 응용 프로그램을 만들고 있는데 눌려진 버튼이 span 요소의 값과 일치하는지 여부를 감지하는 데 문제가 있습니다.keyCode의 값이 배열의 항목과 일치하는지 감지합니다.

기본적으로 두 개의 div가 있습니다. 두 개의 div는 값에 대해 다른 문자가있는 범위를 포함합니다. 저는 span을 leftPartSpans 및 rightPartSpans라는 변수에 저장했습니다. 그래서 기본적으로 그들에있는 문자 중 하나가 keyCode를에 해당하는 경우 루프의 각 항목을 통해 실행 참조하려고 :

for (i=0; i<leftPartSpans.length; i++) { 

      if(pressedKey == leftPartSpans[i].nodeValue) { 

       leftPart.style.webkitTransform = "rotateZ(20deg)"; 

      } 

     } 

이, 불행하게도, 트릭을하지 않습니다. 당신은 대문자와 소문자에 대해 서로 다른 키 코드를 전송하지 않습니다, 사전에 http://codepen.io/gbnikolov/pen/wJHhk

감사에서 게오르기

답변

2

keydownkeyup을 전체 프로젝트를 볼 수 있습니다. 따라서 귀하의 pressedKey은 해당 이벤트 중 하나를 사용하는 동안 항상 대문자가됩니다. 모든 범위에는 소문자가 포함되므로 절대 일치하지 않으므로 if 블록이 실행되지 않습니다.

대문자와 소문자에 대해 다른 키 코드를 보낼 수 있습니다.

document.querySelector('body').addEventListener('keypress', function(e) { 
    //... 
}); 
+0

예, 완벽하게 작동했습니다. 고마워. –

관련 문제