Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 对元素调用addEventListener会产生“参数不足”错误_Javascript_Html - Fatal编程技术网

Javascript 对元素调用addEventListener会产生“参数不足”错误

Javascript 对元素调用addEventListener会产生“参数不足”错误,javascript,html,Javascript,Html,我的代码可以在Chrome上运行,但不能在Firefox上运行。。。在Firefox中。。。每当这段代码启动时 canvas.addEventListener('keydown'); 我得到这个错误: Not enough arguments [Break On This Error] canvas.addEventListener('keydown'); 顶部附近有var画布,以及: canvas = document.getElementById("canvas"); c

我的代码可以在Chrome上运行,但不能在Firefox上运行。。。在Firefox中。。。每当这段代码启动时

canvas.addEventListener('keydown');
我得到这个错误:

Not enough arguments
[Break On This Error]   

canvas.addEventListener('keydown');
顶部附近有var画布,以及:

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

我不知道为什么它可以在Chrome上正常工作,但不能在Firefox上正常工作…

addEventListener函数需要第二个参数来指定在事件中调用的函数。真正的问题是为什么Chrome不生成错误。

您需要一个在事件触发时执行的函数。可以按以下方式内联指定:

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);
或者可以这样指定:

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);

如果没有事件处理程序函数,事件处理程序将无法执行任何操作,因为事件触发时不会执行任何代码。

您还可以使用JQuery将keydown事件绑定到画布

$('#canvas').on("keydown", function(event){
    // code
});

addEventListener的第二个参数应该是回调函数。请看:这当然是javascript。JQuery echivalent是.on