クロージャーを理解して使用するのに苦労しています (はい、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
もはやターゲットを参照していません。