-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 函数需要第二个参数来指定事件调用的函数。真正的问题是为什么 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 回答