我是个tyro。我一直在寻找并找到类似问题的答案,但是实施他们的解决方案(可能是错误的)我在这方面一直没有失败。我制作了自己的"康拉德的生命游戏。"我将单元格放入数组" allCells",大小" worldSize" (这是用户在开始游戏之前确定的变量")。
这些单元格都是具有各种属性的对象文字,其中一个是" domInfo",等于" div"具有给定的班级名称。
我在for循环中为单元格分配了它们的所有属性。在for循环中,我想要一些像这样的函数(似乎应该):
allCells[i].domInfo.onclick = userFlipsStatusOfCell(i);
userFlipsStatusOfCell是一个检查单元状态(死或活)并翻转它的函数。它需要数组中单元格的索引。
次要问题:是否会将单元格更改为Cell Class并创建原型函数以某种方式解决此问题?
编辑:伪复制(这个类似的解决方案缺少"返回"当我尝试时,它对我没有用),还有其他好的信息:Get index of clicked element using pure javascript
答案 0 :(得分:0)
您正在调用该函数并分配结果,而不是分配该函数。你可能想做:
allCells[i].domInfo.onclick = function(){userFlipsStatusOfCell(i)};
然而,这将使 i 保持在一个闭包中,这样所有的侦听器都将获得相同的值(在退出循环之前 i 设置的最后一个值)。为了防止这种情况,一个选项是:
allCells[i].domInfo.onclick = (function(n) {
return function(){userFlipsStatusOfCell(n)};
}(i));