动态设置函数参数

Setting function parameter dynamically

本文关键字:参数 函数 设置 动态      更新时间:2023-09-26

您好,我确实有以下代码示例,其中我试图为每个元素提供不同的onClick功能:

for (var i = 0; i < sizex; i++) {
        for (var j = 0; j < sizey; j++) {
            var canvas = document.createElement("CANVAS");
            var id = i * 10 + j;
            canvas.id = "canvas" + id;
            canvas.width = 25;
            canvas.height = 25;
            canvas.style = "border:1px solid black";
            canvas.onclick = function() {
               canvasClicked(id);
            };
            document.body.appendChild(canvas);
        }
    }

问题是它总是用id = sizex * 10 + sizey

我可以将 canvasCliced 的参数传递给函数,以便此函数对于每个画布都"不同"?

使用闭包。

将点击处理程序从

canvas.onclick = function() {
     canvasClicked(id);
};

形成闭,在变量范围内可以访问。

canvas.onclick = function(nId) {
    return function() {
       canvasClicked(nId);
    }
}(id);