Javascript 动态创建画布并添加onmousedown功能

Javascript 动态创建画布并添加onmousedown功能,javascript,html,canvas,Javascript,Html,Canvas,我需要在运行时动态创建多个画布元素。我已经成功地创建了canvas“fine”,但是将“onmousedown”属性设置为一个方法被证明是困难的。这可能是因为我需要通过函数传递canvas元素,尽管我不确定。有人能帮忙吗 谢谢大家! 下面您可以依次看到:原始静态画布、动态创建画布的循环以及我需要设置为“onmousedown”的函数 <canvas id="Canvas1" onmousedown="MouseDown(this, event)" onmousemove="MouseMov

我需要在运行时动态创建多个画布元素。我已经成功地创建了canvas“fine”,但是将“onmousedown”属性设置为一个方法被证明是困难的。这可能是因为我需要通过函数传递canvas元素,尽管我不确定。有人能帮忙吗

谢谢大家!

下面您可以依次看到:原始静态画布、动态创建画布的循环以及我需要设置为“onmousedown”的函数

<canvas id="Canvas1" onmousedown="MouseDown(this, event)" onmousemove="MouseMove(event)" onmouseup="MouseUp(event)" width="0" height="600" style="overflow: hidden; position: absolute; top: 0px;">

for(var i = 1; i < total; i++)
{
    var div = document.getElementById("Control");
    var canv = document.createElement('canvas');
    canv.id = "Canvas" + i.toString();         
    canv.width= 0+'px';
    canv.height= 600+'px';
    canv.style.overflow = 'hidden';
    canv.style.position = 'absolute'; 
    canv.style.top = 0+'px';

    div.appendChild(canv);
}

function MouseDown(can, e)
{

    MovingCanvas = can;
    alert("got here");
    clicked = true;
    MouseX = e.clientX;
    MouseY = e.clientY;

    StartX = MovingCanvas.style.left;
    StartY = MovingCanvas.style.top;
}

对于(变量i=1;i
只需在循环中添加回调处理程序:

for(var i = 1; i < total; i++) {

    --- 8X ---

    /// add a callback handler here by referencing the function
    canv.onmousedown = MouseDown;

    div.appendChild(canv);
}
当然,这也需要修改:

<canvas id="Canvas1" onmousedown="MouseDown(event)" ...
                                            ^^^^^

只需在循环中添加回调处理程序:

for(var i = 1; i < total; i++) {

    --- 8X ---

    /// add a callback handler here by referencing the function
    canv.onmousedown = MouseDown;

    div.appendChild(canv);
}
当然,这也需要修改:

<canvas id="Canvas1" onmousedown="MouseDown(event)" ...
                                            ^^^^^