我很难理解和使用闭包(是的,我已经阅读了JavaScript 闭包如何工作?)
我的问题如下:
for (row = 0; row < 10; row++) {
for (column = 0; column < 10; column++) {
var target = $("#" + Data.Row[row].Column[column].ID);
target.mouseenter(function () {
var position = CalculatePosition($(this));
alert("row:" + row + ",column:" + column);
...
});
}
}
如您所料,只要目标鼠标悬停在行和列上,行和列始终为 9。那么我的问题是,如何冻结行和列的值,以便 mouseevent 匿名函数可以获得它们的预期值?我试着做类似的事情
target.mouseenter(function() {}.bind(column));
这似乎只适用于列,但当然this
不再是指目标。