0
我在使用jQuery將一個函數綁定到一個元素時遇到了一些困難。基本上我有一組使用JSON加載的div。每個JSON項目都有一個關聯的「操作」,用於定義在單擊該div時要調用的函數。jQuery綁定到元素的順序?
我走過每一個JSON項目的重複,我(editied爲清楚起見):
for (var i = 0; i < JSONOBJECT.length; i++) {
var divbox = $('<div id="' + i + '"><img /></div>');
var action = JSONOBJECT[i]["action"];
$(divbox).click(function() {
eval(action); // bind function
});
$('.navigationarea').append(divbox); // Append to area
}
因此,例如,JSONOBJECT[0]["action"]
可以包含"doThis()"
,而JSONOBJECT[1]["action"]
可以包含一個"doThis2()"
。
問題是action
總是最終成爲與JSON對象中最後一項關聯的操作。我知道這是一個與本地化變量(或製作副本?)有關的問題,但我錯過了它。
我可以得到一些幫助嗎? 在此先感謝。
謝謝。這是一個很好的實現建議,我也很好地重構了代碼。 – Rio