为方便起见,这是我的代码的交互式 jsfiddle 版本。 这是有问题的代码:
for i in [1, 2, 3, 4, 5, 6, 7, 8]
console.log "cell #{i} was created!"
cell = $('<div class="inventory-cell"></div>').mousedown (event) ->
alert "#{i} was clicked!"
$("#inventory-grid").append(cell)
这是html:
<div id="inventory-dialog" class="dialog">
<div id="inventory-grid"></div>
</div>
这是它应该如何工作的。这将在一个循环中生成一堆单元格。如果我点击第一个我希望它提醒的人,“1 被点击了!” 当我点击最后一个时,我想让它说,“8 被点击了!” 但由于某种原因,我点击的每个人都说,“8 被点击了”。为什么会这样?