如此处所述,以下http://www.mennovanslooten.nl/blog/post/62/代码的输出结果仅是“ 5x5”之前忘记了任何内容的结果。

for (x = 1; x <= 5; x++) {
for (y = 1; y <= 5; y++) {

    var cords = x+"x"+y;
    var el = document.getElementById(cords);
    el.addEventListener("click", function (e) { B_modeWindow('1', cords); });

}
}


据我所知,信息(上面提供的博客链接)无法弄清楚如何更改显示的代码来修复它。

如何在我的for循环中使用JavaScript封闭处理这些代码?

编辑:我不明白。变量定义很好。测试:

for (x = 1; x <= 5; x++) {
for (y = 1; y <= 5; y++) {

    var cords = x+"x"+y;
    alert(cords);

}
}

最佳答案

使用您需要将其关闭的任何参数作为参数调用该函数。在这种情况下,这是cords

for (x = 1; x <= 5; x++) {
    for (y = 1; y <= 5; y++) {
        var cords = x + "x" + y;
        var el = document.getElementById(cords);

        (function(cords) {
            el.addEventListener("click", function (e) { B_modeWindow('1', cords); });
        })(cords);
    }
}

09-25 17:45