Programing

자바 스크립트 이벤트 e. 어느?

crosscheck 2020. 11. 14. 09:53
반응형

자바 스크립트 이벤트 e. 어느?


javascript event e.which의 기능은 무엇입니까? 예를 들어 간략히 설명해주세요.


e.which은 이벤트가 아니며 대부분의 사람들 이 이벤트 처리기에서 레이블 which을 지정하는 event개체 의 속성입니다 e. 여기에는 이벤트를 트리거하기 위해 누른 키의 키 코드가 포함됩니다 (예 : keydown, keyup).

document.onkeypress = function(myEvent) { // doesn't have to be "e"
    console.log(myEvent.which);
};

이 코드로 콘솔은 키보드에서 누르는 키의 코드를 인쇄합니다.


whichEvent객체 의 속성입니다 . 대부분의 브라우저에서 키 관련 및 마우스 관련 이벤트에 대해 정의되지만 두 경우 모두 IE (버전 9 이전)에서는 정의되지 않습니다.

마우스 관련 이벤트의 경우 관련된 which마우스 버튼을 지정합니다. IE <9의 경우 동등한 값이 window.event.button. 복잡하게하기 위해 비 IE 브라우저는 button때때로 .NET Framework와 다른 값을보고하는 마우스 이벤트 속성 도 지원합니다 which. 또한 브라우저는 때때로 동일한 버튼 또는 버튼 조합에 대해 다른 값을 갖습니다. 사용에 충실 경우 which를 지원하는 모든 브라우저와 buttonIE <9, 하나 개의 상수 (하지만 반드시 단독) 1의 값은 항상 마우스 왼쪽 버튼이 포함 된 의미이다.

document.onmousedown = function(e) {
    e = e || window.event;
    var button = (typeof e.which != "undefined") ? e.which : e.button;
    if (button == 1) {
        alert("Left mouse button down");
    }
};

전체 분석을 위해 JavaScript 마우스 이벤트에 대한 Jan Wolter의 기사를 추천 합니다 .

키 관련 이벤트의 경우 누른 키와 관련 which됩니다. 의 경우 keydownkeyup사건이 비교적 간단하다 : 그것은 키를 누를의 키 코드, 그리고 이벤트의 같은 값 반환 keyCode속성을. 모든 브라우저가 keyCode속성을 지원 하고 IE <9는를 지원하지 않으므로 which일반적으로 keyCodefor keydownkeyup이벤트를 사용해야 합니다.

의 경우 keypress이벤트, 상황은 더 복잡하다. 인쇄 가능한 문자 키의 경우 which눌린 키의 문자 코드이며 charCode속성 보다 더 많은 브라우저에서 지원됩니다 . IE <9에서 동등한 것은 다시 keyCode속성입니다. 따라서 입력 된 문자를 감지하기 위해 다음은 브라우저 간 접근 방식입니다. 아래 코드는 화살표 키와 같이 인쇄 할 수없는 키에 사용해서는 안됩니다. 대신 keydown이벤트 에서 감지해야합니다 .

document.onkeypress = function(e) {
    e = e || window.event;
    var charCode = (typeof e.which == "number") ? e.which : e.keyCode;
    if (charCode) {
        alert("Character typed: " + String.fromCharCode(charCode));
    }
};

다시 한 번 더 자세한 내용은 JavaScript 키 이벤트에 대한 Jan Wolter의 기사를 추천 합니다.


이 기능은 웹 표준에서 제거되었습니다. 일부 브라우저는 여전히 지원할 수 있지만 삭제 중입니다. 이전 또는 새 프로젝트에서 사용하지 마십시오. 이를 사용하는 페이지 또는 웹 앱은 언제든지 중단 될 수 있습니다.

KeyboardEvent.key가능한 경우 대신 사용해야 합니다.

http://codepen.io/KevinOrfas/pen/QKbKAd


이벤트 중 e:

e.which

다음과 같습니다.

e.keyCode

따라서 두 기능 모두 키 누르기, keydown 또는 keyup 이벤트 중에 누른 키의 키 코드를 얻을 수 있습니다.

많은 사람들이 ||(OR)을 사용하여 코드가 어떤 속성을 지원하지 않는 브라우저에서 작동하는지 확인합니다. 아래 코드를보십시오.

document.onkeypress = function(e) {
   var key = e.which || e.keyCode;
   alert(key);
}

참고 URL : https://stackoverflow.com/questions/3050984/javascript-event-e-which

반응형