나는 버튼으로 작동하는 div가 있습니다. 버튼을 클릭하면 키 누르기를 시뮬레이션 할 수 있습니다. Stackoverflow의 다른 곳에서는 사람들이 jQuery.Event("keydown");
을 사용하도록 제안했지만 제안 사항은 모두 .click
이 아니라 버튼에 바인딩 된 .trigger()
을 사용합니다. 그래서, 내 예제 코드는 다음과 같습니다 : 나는 JSFiddle에서 더미 예를 설정 한Jquery가 포함 된 가상 키보드
var press = jQuery.Event("keydown");
press.which = 69; // # The 'e' key code value
press.keyCode = 69;
$('#btn').click(function() {
$('#testInput').focus();
$(this).trigger(press);
console.info(press);
});
: 키 누르기 폼 요소에 입력이보다는 결국 http://jsfiddle.net/ruzel/WsAbS/
을, 난 그냥 원하는 MelonJS 게임이 가질 수 있도록 이벤트를 키 누르기로 문서에 등록하십시오.
업데이트 : 키보드 이외의 키 누르기를 트리거하는 것이 보안상의 이유로 브라우저에서 무시되는 것 같습니다. 텍스트 입력을 업데이트하는 경우,이 아주 좋은 jQuery 플러그인 트릭 할 것입니다 다음 MelonJS의 경우에 솔루션을 찾고 여기에 오는 사람에 관해서는 http://bililite.com/blog/2011/01/23/improved-sendkeys/
을, 그것과 같이, MelonJS의 me.input 객체를 사용하는 것이 가장 좋습니다 :
$('#btn').mousedown(function() {
me.input.triggerKeyEvent(me.input.KEY.E, true);
});
$('#btn').mouseup(function() {
me.input.triggerKeyEvent(me.input.KEY.E, false);
});
그럼 뭐가 궁금한가요? 'document'에서 그것을 트리거하고 싶다면'this' 대신에 그것을 사용하십시오. – Ian
MelonJS에 필요한 것이 확실하지 않지만 $ ('testInput'), trigger (press); 대신'$ ('testInput')을 찾고 있다고 생각합니다. $ (this) .trigger (press);'. 실제로 텍스트를 텍스트 상자에 삽입하지는 않지만 해당 텍스트 상자에서 누른 키 코드를 시뮬레이트합니다. 그리고 자동으로'문서화'('.trigger'의 성질)까지 버블 될 것입니다 - http://jsfiddle.net/WsAbS/5/ – Ian
고마워, 이안. 네, 위의 업데이트에서 말했듯이 실제 키보드의 보안상의 이유로 들어오지 않는 입력에 키 누르기를 보낼 수없는 것처럼 보입니다. MelonJS에 관해서도, 나는 위의 업데이트에서 그것을 언급했다. – russellmania