DIV 요소에서 키 누르기 (또는 키 다운) 이벤트 캡처


146

jQuery를 사용하여 DIV 요소에서 키 누르기 또는 키 다운 이벤트를 어떻게 트랩합니까?

DIV 요소에 초점을 맞추려면 무엇이 필요합니까?


2
div의 "초점"이란 무엇입니까?
Jonathon Faust 2016 년

1
tabindex가있을 때 탭하지 않고 jboyd를 사용하면 javascript를 사용하여 그것을 찾고 focus 메소드를 호출 할 수 있습니다.
Brendan Enrick 2016 년

2
@Lalchand ... 어쩌면 내 대답을 받아 들일 수 있습니까? :)
helle

답변:


301

(1) tabindex속성을 설정하십시오 .

<div id="mydiv" tabindex="0" />

(2) 키 다운에 바인딩 :

 $('#mydiv').on('keydown', function(event) {
    //console.log(event.keyCode);
    switch(event.keyCode){
       //....your actions for the keys .....
    }
 });

시작에 초점을 설정하려면

$(function() {
   $('#mydiv').focus();
});

div포커스 테두리 를 제거하려면 (원하는 경우) outline: noneCSS에서 설정 하십시오.

더 많은 가능성 은 키 코드 표를 참조하십시오 keyCode.

jQuery를 사용한다고 가정하는 모든 코드.

#

43
+1 tabindex는 div를 '선택 가능'하게 만드는 핵심 포인트입니다. JQuery는 필요하지 않습니다. Angular에서도 작동하지만 일반 자바 스크립트 이벤트에서도 마찬가지입니다.
Jukka Dahlbom

4
이에 대한 브라우저 지원은 무엇입니까?
knownasilya

27
tabindex는 중요한 부분이지만 "0"이외의 다른 값으로 설정하지 마십시오. 0보다 큰 값을 설정하면 시각 장애가있는 사용자의 화면 판독기가 엉망이됩니다 (페이지의 모든 내용을 건너 뛰고 0보다 큰 tabindex로 바로 이동 함). tabindex = "0"은 "탭 가능"하게합니다. tabindex = "0"으로 무한한 요소를 가질 수 있습니다
zonabi

2
<pre>에서도 작동합니다!
dfmiller

2
우수한! tabindex가 없으면 DIV가 포커스를받을 수 없기 때문에 tabindex 속성이 누락되었습니다. 고마워요! 내 목숨을 구했다! 편집 : React와 함께 작동
Vinícius Negrão

6

다음은 일반 JS에 대한 예입니다.

document.querySelector('#myDiv').addEventListener('keyup', function (e) {
  console.log(e.key)
})
#myDiv {
  outline: none;
}
<div 
  id="myDiv"
  tabindex="0"
>
  Press me and start typing
</div>


이 질문에 어떻게 대답합니까?
Poul Bak

5

tabindex HTML 속성은 해당 요소가 초점을 맞출 수 있는지 여부 및 순차적 키보드 탐색 (일반적으로 Tab키 사용)에 참여하는지 여부를 나타냅니다 . 자세한 내용은 MDN 웹 문서 를 참조하십시오.

Jquery 사용

자바 스크립트 사용


1
사실이 너무 너무 감사합니다, 단순히 사업부에 수정을 탭 위치를 한 추가 사업부 손실 초점 말의 컨트롤이 된 div를 클릭하면 대한 focusOut 이벤트 발사에 문제에 대한 스크롤을 찾고 발견
MikeT
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.