Javascript 将事件列表器添加到画布时出错

Javascript 将事件列表器添加到画布时出错,javascript,html,canvas,Javascript,Html,Canvas,我正在学习画布和HTML5 我想在单击画布时运行函数,但我的代码不起作用,请帮助。 我的代码如下 <center><canvas id="mycanvas"></canvas></center> <script type="text/javascript"> Canvas = function(canvasel,width,height) { this.el

我正在学习画布和HTML5

我想在单击画布时运行函数,但我的代码不起作用,请帮助。 我的代码如下

 <center><canvas id="mycanvas"></canvas></center>
 <script type="text/javascript">
    Canvas = function(canvasel,width,height)
              {
                   this.el = canvasel;
                    this.el.width = width;
                    this.el.height = height;
                    this.ctx = canvasel.getContext("2d");

              }    


  var canvas = new Canvas(document.querySelector("#mycanvas"),300,300);      


     canvas.addEventListener('click', function() { alert('gg') }, false);
     canvas.ctx.moveTo(50,50);
     canvas.ctx.lineTo(250,250);            
     canvas.ctx.stroke();
     canvas.ctx.closePath();
     canvas.ctx.fillRect(0,0,100,100);


</script>

画布=功能(画布、宽度、高度)
{
this.el=画布;
此.el.width=宽度;
该高度=高度;
this.ctx=canvasel.getContext(“2d”);
}    
var canvas=newcanvas(document.querySelector(“mycanvas”),300300;
addEventListener('click',function(){alert('gg')},false);
canvas.ctx.moveTo(50,50);
canvas.ctx.lineTo(250250);
canvas.ctx.stroke();
canvas.ctx.closePath();
canvas.ctx.fillRect(0,0100);

有人能告诉我哪里出错了吗?

必须将事件侦听器添加到要传递到画布构造函数的DOM元素中

与其这样做,不如这样做:

canvas.addEventListener('click', function() { alert('gg') }, false);
你应该做:

canvas.el.addEventListener('click', function() { alert('gg') }, false);

首先你应该这样做

canvas.el.addEventListener('click', function() { alert('gg') }, false);
既然你已经问了,这就是你想要的


canvas.el.addEventListener('click',function(){alert('gg')},false)…在DOM目标元素上添加eventlistener..这对我很有帮助我现在还有一个问题而不是警报我想将其连接到我在脚本中添加的函数,我应该如何做?我尝试了canvas.el.addEventListener('click',functionname(),false)
但这对我没有帮助我现在还有一个问题,我想把它连接到我在脚本中添加的一个函数,我应该如何做?我尝试了canvas.el.addEventListener('click',functionname(),false);但它不起作用:canvas.el.addEventListener('click',functionname,false);这意味着您将传递对函数的引用。如果您添加“()”,您将只传递函数的结果,这很可能只是void。
function somefunc(){
alert("try me");
}
canvas.el.addEventListener('click', somefunc, false);