이 코드가 작동하지 않는 이유는 약간 혼란 스러워요 : JS 트리거 keyDown 이벤트
$(document).keydown(function(e){
if (e.keyCode == 39) {
//RIGHT
document.getElementById('col_detector_right').innerHTML="";
col_jack('right');
if(document.getElementById('col_detector_right').innerHTML!=""){
}
else{
var left = document.getElementById('jack').style.left;
var current_left = parseFloat(left);
var new_left = current_left + 400;
document.getElementById('jack').style.left = new_left+'px';
}
right = true;
return false;
}
if (e.keyCode == 37) {
//LEFT
document.getElementById('col_detector_right').innerHTML="";
col_jack('right');
if(document.getElementById('col_detector_right').innerHTML!=""){
}
else{
var left = document.getElementById('jack').style.left;
var current_left = parseFloat(left);
var new_left = current_left - 4;
document.getElementById('jack').style.left = new_left+'px';
}
right = false;
return false;
}
if (e.keyCode == 38) {
//UP
return false;
}
if (e.keyCode == 40) {
//DOWN
return false;
}
if (e.keyCode == 32) {
//SPACE
if(right==true){
var top = document.getElementById('jack').style.top;
var current_top = parseFloat(top);
var new_top = current_top -40;
document.getElementById('jack').style.top = new_top+'px';
var left = document.getElementById('jack').style.left;
var current_left = parseFloat(left);
var new_left = current_left + 20;
document.getElementById('jack').style.left = new_left+'px';
right=false;
var press = $.Event('keydown');
press.which = 39;
$(document).trigger(press);
}
else{
var top = document.getElementById('jack').style.top;
var current_top = parseFloat(top);
var new_top = current_top -40;
document.getElementById('jack').style.top = new_top+'px';
}
return false;
}
});
이 specificly이 비트, 작동하지 않는 :
var press = $.Event('keydown');
press.which = 39;
$(document).trigger(press);
이유는 무엇입니까? 오른쪽 화살표 키를 트리거해야한다는 아이디어가 있지만 그렇지 않습니까? 아무 것도 일어나지 않고, 트리거하지 않거나 keydown 이벤트를 제대로 확인하지 못하고 있습니까? 나는 그게 어떤 것이거나 다른 것인가를 모른다.
을, 그러나 이것을 확인하는 것이 좋습니다 : http://stackoverflow.com/a/203262/947514 프레스의 keyCode를 설정해 볼 수도 있지만 일반적으로 모든 브라우저에서 작동하지 않을 수 있습니다. –
keypress도 잘 동작하지 않습니다. 위의 코드가 작동하지 않는 이유가 없습니다. –