Addeventlistener到画布标签

时间:2014-10-08 21:36:45

标签: javascript html html5 html5-canvas

我正确地从html获取canvas tag但是当我尝试添加一个eventlistener时,控制台会返回Uncaught TypeError: undefined is not a function。我无法理解原因。

var x = document.getElementsByTagName('canvas');
console.log(x); //print correctly the element : [canvas, item: function, namedItem: function]

x.addEventListener("click", prova);//Uncaught TypeError: undefined is not a function 

function prova( event ) {

console.log("prova");//


};

2 个答案:

答案 0 :(得分:4)

执行document.getElementsByTagName("canvas")[0]

getElementsByTagName返回一个HTMLCollection(有点像数组),而addEventListener仅适用于元素,因此您需要选择具有正确索引的元素。

替代方案是document.querySelector("canvas"),它将返回一个元素。

答案 1 :(得分:3)

http://jsfiddle.net/4j0fjh6x/

getElementsByTagName返回一个HTML元素数组,因此您必须定义一个索引。在HTML的基本示例中,您可以假设您只有一个<canvas>标记,因此您可以使用getElementsByTagName("canvas")[0]