0

나는 그것이 함께 작동하지 않기 때문에 두 번 "onkeydown"기능을 병합하려고합니다. 아래 코드 :병합 onkeydown 기능

기능 - 1 개

document.onkeydown = checkKeycode 
function checkKeycode(e) { 
    var event = e || window.event; 
    var keycode = event.which || event.keyCode; 

    if (keycode == 91) { 
    alert("Windows"); 
    } 
} 

기능 - 2

document.onkeydown = function(e){ 
var n = (window.Event) ? e.which : e.keyCode; 
if(n==116 || n==27 || n==112 || n==123 || n==17) return false; 
} 

var keys = {}; 

$(document).keydown(function (e) { 
    keys[e.which] = true; 
}); 

$(document).keyup(function (e) { 
    delete keys[e.which]; 
}); 

페이지의 실행 기능 - 1이 작동하지 않습니다.

+0

:

당신이 EventListeners을 사용하고 같은 이벤트에 기능을 발사한다 onkeydown 이벤트를 수신하려면

? 이것은 일이 보통보다 더 복잡하게 만듭니다. –

답변

1

onkeydown 메서드는 하나만 사용할 수 있습니다. 그런 다음 두 번째 기능을 추가 할 수 있습니다

document.addEventListener('keyDown', checkKeycode); 

을 그리고

0

2 기능은 첫 번째 함수를 덮어 쓰기 때문에 작동하지 않습니다 작동합니다 :이 작업을하려면, 당신은 예를 들어,의 EventListener를 사용해야합니다.

예 :

var d; 
d = 1; 
d = 2; 
console.log(d); // prints '2' 

var c; 
c =() => { return '1'; }; 
c =() => { return '2'; }; 
console.log(c()); // prints '2' 

이 자바 스크립트 기본입니다. 같은 이벤트에 대해이 핸들러를 사용하는 이유는

document.addEventListener('keyDown', function1); 
document.addEventListener('keyDown', function2); 
// both function will execute on keyDown event