2013-04-27 3 views
-5

테이블에서 행 스타일을 변경하여 선택한 행을 시뮬레이션합니다. 이제 화살표 키로 선택한 행을 이동하려고하지만 Chrome 및 Firefox에서 keydown 이벤트가 작동하지 않습니다.javacript keydown이 크롬과 파이어 폭스에서 작동하지 않습니다.

저는 JQuery를 사용하고 싶지 않습니다.

(가능한 경우)이 테이블을 서버 측에서 복잡한 프로세스로 렌더링하기 때문에 인라인 이벤트를 사용하는 것이 더 낫습니다. 자바 스크립트를 사용하지 않는 것이 좋습니다. < tr onkeydown = "myfunc (this)"> ...)

+2

, 내가 할 수있는 거의 그것을 볼 수 ... – iGanja

+0

왜 이러한 부정 투표? (keydown은 크롬과 파이어 폭스의 TR 요소에서 작동하지 않습니다.) – user2169286

+0

'keydown'은 Jquery 이벤트가 아닌가요? – enb081

답변

0

필자는 테이블 행에 onkeydown을 사용해야한다고 생각하지 않습니다. 행의 키 다운은 입력 요소가있는 경우에만 작동합니다. 그렇지 않으면 초점을 맞출 수 없습니다.

귀하의 경우 가능하다면 잘 모릅니다.하지만 이렇게 해보십시오. 어떤 이유로 당신이 jQuery를 사용하지 않는 경우는 querySelector을 지원하지 않는 브라우저를 위해 조금 수정해야합니다 :

document.body.addEventListener('keydown',function(ev){ 
    var trs = document.querySelector('.s'); 
    if(ev.keyCode == 38 && trs.previousSibling){ 
     trs.className = ''; 
     trs.previousSibling.className = 's'; 
    }else if(ev.keyCode == 40 && trs.nextSibling){ 
     trs.className = ''; 
     trs.nextSibling.className = 's'; 
    } 
}) 
현재 시도가 너무 깨끗

http://jsfiddle.net/FvgaE/

+0

포커스를 갖기 위해 입력 요소가있을 필요는 없습니다. – Neil

+0

네가 맞다 네일,하지만 왜 ""가 작동하지 않습니까? – user2169286

+0

@Neil 바로 'a'와 함께 작동해야합니다. 그러나 그것은 보통'tr'에서 작동하지 않습니다. – Andy

관련 문제