我正在制作一个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
}
我单击任何元素,但它返回“密件抄送”(数组中最后一个元素的名称)