간단한 자바 스크립트 코드를 작성하고 onKeyDown/onKeyUp
에 대한 이벤트 리스너를 추가했습니다. 그것은 정상적으로 작동하고 필요에 따라 Control 키를 감지합니다. 그러나 OS 단축키를 사용하는 경우에도 Ctrl 키가 눌러 진 것을 보여줍니다.Javascript onKeyDown function
구체적으로 말하자면 우분투에서 작업 공간을 전환하려면 Ctrl+Alt+ arrow keys
을 사용하십시오. 따라서 작업 공간을 전환하고 다시 Chrome으로 돌아 오면 이미 Control
키가 눌 렸음을 알 수 있습니다.
단축키를 해제해도 onkeyup
메서드가 호출되지 않으므로 상태에 Ctrl
키가 눌 렸음을 나타냅니다. 어떻게 이것을 피합니까?
다음은 내 코드입니다 :
function keypressedfn(e){
if(e.which == CTRL_KEY){
console.log("isCtrl pressed");
isCtrl=true;
if(isWheel){
e.preventDefault();
e.stopPropagation();
}
}
};
function keyreleasedfn(e){
if(e.which == CTRL_KEY){
console.log("isCtrl released");
isCtrl=false;
isWheel=false;
}
};
$(document).ready(function(){
$(document).keydown(keypressedfn);
$(document).keyup(keyreleasedfn);
});
문서 요소에 키 이벤트가 추가 되었습니까? – Piwwoli
문제가 Ubuntu 및 Chrome에서만 발생한다고 생각되면 태그를 추가하십시오. – RobG
@Piwwoli, 예, 키 이벤트가 문서 요소에 추가됩니다. – user59077