-3

私のコードはChromeでは機能しますが、Firefoxでは機能しません... Firefoxでは...このコードが起動するたびに..

canvas.addEventListener('keydown');

次のエラーが表示されます。

Not enough arguments
[Break On This Error]   

canvas.addEventListener('keydown');

私はvar canvasこれと同様にトップの近くにいます:

canvas = document.getElementById("canvas");
    canvas.width = 512;
    canvas.height = 352;
context = canvas.getContext("2d");

Chrome では正常に動作するのに Firefox では動作しない理由がわかりません...

4

3 に答える 3

11

addEventListener 関数には、イベントで呼び出される関数を指定する 2 番目のパラメーターが必要です。問題は、Chrome がエラーを生成しない理由です。

于 2012-08-10T19:04:17.863 に答える
7

イベントが発生したときに実行される関数が必要です。次のようにインラインで指定できます。

canvas.addEventListener('keydown', function(e) {
    // your code here to handle the event
});

または、次のように指定できます。

function keyHandler(e) {
    // your code here to handle the event
}

canvas.addEventListener('keydown', keyHandler);

イベント ハンドラー関数がないと、イベントが発生したときにコードが実行されないため、イベント ハンドラーが行うことは何もありません。

于 2012-08-10T19:11:29.137 に答える
3

JQuery を使用して、keydown イベントをキャンバスにバインドすることもできます。

$('#canvas').on("keydown", function(event){
    // code
});
于 2018-03-14T01:35:52.303 に答える