2012-08-10 57 views
-3

我的代碼適用於Chrome而不是Firefox的...在Firefox ......每當這段代碼啓動..一個元素上調用的addEventListener產生「沒有足夠的參數」錯誤

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

我不知道爲什麼它禾rks可以使用Chrome,但不能使用Firefox ...

+5

'addEventListener'的第二個參數應該是回調函數。請參閱:https://developer.mozilla.org/en-US/docs/DOM/element.addEventListener – asawyer 2012-08-10 19:00:45

+2

當然,這是JavaScript。 JQuery echivalent是'.on' – Samson 2012-08-10 19:01:20

回答

5

您需要一個在事件觸發時執行的函數。它可以指定內聯這樣的:

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

沒有一個事件處理函數,沒有什麼事件處理程序做,因爲沒有代碼會在事件發生時執行。

9

addEventListener函數需要第二個參數來指定在該事件上調用的函數。真正的問題是爲什麼Chrome不會產生錯誤。

相關問題