0

addEventListenerキーボードイベントを制御するために、1つのキャンバスゲームに以下があります:

document.addEventListener("keydown", keyDown, true);
document.addEventListener("keypress", keyPress, true); 

そして、キープレス イベントをシミュレートしてゲームを開始する以下の jQuery コード。

$("#new").click(function(event) {
  event.preventDefault(); // Stop the link click from doing anything.
  var ev = jQuery.Event("keypress"); // Build an event to simulate keypress.
  ev.which = 78; // Keycode for 'N' is 68
  ev.ctrlKey = false; // Control key is down.
  $(this).trigger(ev); // Fire!
});

キーボードで「N」を押すと、キャンバス ゲームは正しく開始されますが、#newdiv をクリックしても何も起こりません。

私のキャンバス要素:

<canvas width="500px" height="480px" tabindex="1" id="game"></canvas>
4

1 に答える 1

1

jQuery .trigger は、addEventListener ではなく、jQuery を使用してバインドされたイベントのみを実行します。

使用する必要があります

$(document).bind('keydown',function(){

また

$(document).keydown(function(){

jQuery を使用できるようにしますtrigger。オール オア ナッシング jQuery。

または、 native を使用することもできますがdispatchEvent、それは複雑で面倒で、jQuery ではありません。

于 2013-11-05T21:16:49.790 に答える