我有一個類似於這裏的問題:Event handlers inside a Javascript loop - need a closure?但我使用jQuery和給出的解決方案似乎觸發事件時,它的約束,而不是點擊。jQuery閉包,循環和事件
這裏是我的代碼:
for(var i in DisplayGlobals.Indicators)
{
var div = d.createElement("div");
div.style.width = "100%";
td.appendChild(div);
for(var j = 0;j<3;j++)
{
var test = j;
if(DisplayGlobals.Indicators[i][j].length > 0)
{
var img = d.createElement("img");
jQuery(img).attr({
src : DisplayGlobals.Indicators[i][j],
alt : i,
className: "IndicatorImage"
}).click(
function(indGroup,indValue){
jQuery(".IndicatorImage").removeClass("active");
_this.Indicator.TrueImage = DisplayGlobals.Indicators[indGroup][indValue];
_this.Indicator.FalseImage = DisplayGlobals.IndicatorsSpecial["BlankSmall"];
jQuery(this).addClass("active");
}(i,j)
);
div.appendChild(img);
}
}
}
我已經試過了幾個都沒有成功不同的方式...
原來的問題是,_this.Indicator.TrueImage總是最後的價值,因爲我使用循環計數器而不是參數來選擇正確的圖像。
謝謝:)頓覺有點傻! – 2008-12-11 14:27:28