2014-07-01 3 views
0

나는 Sudoku 퍼즐이 있습니다. 사용자가 Shift 키를 누른 상태에서 화살표 키를 사용하여 셀 사이를 위아래로 이동할 수 있도록하고 싶습니다. 이미 설정되어있는 셀은 <input> 태그이며 나머지 태그는 readonly입니다. 각 셀에는 'puzzle_cells'클래스가 있고 'c'로 시작하는 ID는 행 번호, '-'및 셀 번호로 직접 이어집니다.Shift 키를 누른 상태에서 화살표 키를 누름

따라서 세 번째 셀은 왼쪽에서 다섯 번째 셀은 'c3-5'의 ID를 갖습니다. 모든 셀에는 ID가 있으므로 수정할 수있는 입력에 다음과 같은 속성이 있다고 생각합니다. onkeyup="shiftArrows(this)". 제 질문은 shiftArrows()에 무엇을 넣는 것입니까?

아마 같은 것을 시작하는 것입니다 :

var input_id = $(this).attr('id'); 

하지만 나는 화살표 키를 누르고있는 경우 Shift 키가 다운되는 동안 테스트 할 수 있습니다. shift+down을 누르거나 shift+up이고 바로 위 또는 아래에있는 셀이 'readonly'이면 올바른 것으로 이동하여 다시 확인합니다. 그게 'readonly'이라면, 그것은 왼쪽 두 개로 갈 것이고, 계속 체크 할 것입니다. shift+right을 누르면 빈 칸을 찾거나 다음 줄로 넘어갈 때까지 오른쪽으로 계속 이동합니다. shift+left에 대해서도 마찬가지입니다.

어쨌든, 나는 그것을 할 수 있지만, 내가 알지 못하는 것은 shift 키를 누르고있는 동안 화살표가 눌러 졌는지 테스트하는 방법입니다.

답변

3

당신이 겪은 일을 처리합니까?

if (event.shiftKey && event.which == 38) { 
    //shift was down when up arrow pressed 
} 

JS 바이올린 : http://jsfiddle.net/stroz/hrQEX/3/

+0

즉 완벽한 보인다! 내가 그것을 밖으로 시도하자 ... – BestAnswer

+0

'onkeyup' 속성에 여러 함수를 넣을 수 있습니까? – BestAnswer

+0

제 피들을보세요, 다른 키를 다룹니다 – stroz

관련 문제