在特定点将“ i”的值存储在JS for循环中

时间:2019-04-04 18:35:07

标签: javascript loops variables

我正在制作一个JS脚本,该脚本需要一个2D数组并在屏幕上绘制一些图片。 该数组包含以下数据:唯一名称,图片文件名称,xy坐标和z-index。 包含数组元素并在屏幕上绘制图片的for循环还应该为它们提供一个功能,使得当我单击图像时,计算机便知道并执行操作。

问题是,在每个循环中,我都应使函数对“ i”变量的特定值起作用(请参见下面的代码)。 我尝试了一些小的修改,但是我只设法看到i在循环运行后消失了,或者每个项目的i都达到最大值。

有没有一种方法可以使函数具有恒定的i值,而不管循环中变量与此同时执行的操作是什么?

这是我关于StackOverflow的第一个问题,对不起,如果我做错了什么。 谢谢。

我已经尝试从for循环中“声明” i,这解决了在循环后删除变量的问题,但现在每个函数都适用于i的最后一个值。然后,我尝试将“ i-s”的值存储在单独的数组中,但这在代码中只会造成很多混乱,而无法解决问题。

var img = [];
var g = [// some stuff............................   
        ["bcc", "BELL", xbemb + 350, ybem + 542, 30]];
for (i = 0; i < g.length; i++) {
    //omissis
    //here it creates the function which should have a different
    //i value for each element but does not
    img[g[i][0]].onmousedown = function() { topo(g[i][0]); };
    //omissis
}

我单击任何元素,但它返回“密件抄送”(数组中最后一个元素的名称)

0 个答案:

没有答案