반응형
jQuery의 'keypress'는 Chrome의 일부 키에서 작동하지 않습니다. 해결 방법?
사용자가을 누를 때 div를 제거하는 키 누르기 기능을 구현하려고합니다 Esc
. 이것은 다음 코드를 사용하여 Firefox 및 IE에서 작동합니다.
$("body").keypress(function(e) {
alert("any key pressed");
if (e.keyCode == 27) {
alert("escape pressed");
}
});
아무 키나 누르면 첫 번째 키 alert
가 표시되고 Escape 키를 누르면 두 번째 키 alert
도 표시됩니다.
그래도 Chrome에서는 작동하지 않습니다. 첫 번째 alert
는 문자 키를 누르면 항상 표시되지만 Escape, Tab, Space 또는 숫자 중 하나를 누르면 표시되지 않습니다.
왜 그럴까요? Chrome이 이러한 키 누름에 응답하도록 할 수있는 방법이 있나요?
keydown
대신 처리해보십시오 .
keydown을 사용하십시오 . 키 누르기는 Chrome의 ESC에서 작동하지 않습니다 (다른 브라우저에 대해서는 확실하지 않음).
$(newTag).keydown(function(e) { //keypress did not work with ESC;
if (event.which == '13') {
ProfilePage.saveNewTag(search_id, $(newTag).val());
}
else if (window.event.which){
$(newTag).remove();
}
});
ESC 키의 경우 :
$(document).keydown(function(e) {
if(e.keyCode == 27) { /* Run code */ }
}
'L'과 같은 문자 키의 경우 :
$(document).keypress(function(e) {
if(e.which == 108) { }
});
Chrome과 Firefox에서 모두 작동
두 번째 경고 후 추가
e.preventDefault();
이렇게하면 이벤트의 기본 동작이 트리거되지 않습니다.
이 방법에 대한 자세한 정보는 여기
코드는 다음과 같아야합니다.
$("body").keypress(function(e) {
alert("any key pressed");
if (e.keyCode == 27) {
alert("escape pressed");
e.preventDefault();
}});
'ESC'키 누르기
e.which: 0
e.keyCode: 27
키업 'ESC'
e.which: 27
e.keyCode: 27
인쇄 할 수없는 문자의 경우 keyup
.
Jquery.hotkey js 파일을 사용하여 Sortcut 키를 만들 수 있습니다.
$(document).bind('keydown', 'esc', function(){ });
반응형
'Programing' 카테고리의 다른 글
Java 제네릭 : 여러 제네릭 매개 변수? (0) | 2020.11.27 |
---|---|
단순 대리자 (대리자) 대 멀티 캐스트 대리자 (0) | 2020.11.27 |
UTF-8 읽기-BOM 마커 (0) | 2020.11.27 |
"EXC_BAD_ACCESS"예외를 유발하는 NSNotificationCenter 게시물 (0) | 2020.11.27 |
행렬의 각 행에 numpy.linalg.norm을 적용하는 방법은 무엇입니까? (0) | 2020.11.27 |