爲了把事情放在上下文中,我通過Ajax加載項目列表,爲每個項目創建一個包含主要信息的div,並希望在點擊頁面時顯示詳細信息。所以我有我的onSuccess代碼:Event.observe在一個循環和變量
items = transport.responseText.evalJSON(); // my list of objects that contains all the details I'll need for that page
for (var itemID in items)
{
newDiv = ... // Creating my div with main infos
$('myDiv').appendChild(newDiv);
// More code to make everything look pretty and that works fine
Event.observe(newDiv, 'click', function() { loadItem(itemID); });
}
loadItem是我的功能,將顯示所有項目的詳細信息。而我的問題是itemID在創建觀察事件時不會被其值取代,所以它總是返回所有項目的相同ID。
任何想法如何解決這個問題?我在原型doc上檢查了綁定,這似乎是針對這些情況製作的,但可能沒有得到它,因爲它不適用於我。
啊謝謝它的作品,現在我今天學到了一個新的JS技巧! – Charles 2010-12-19 10:23:31
謝謝你在答案中的出色解釋。 +1 – 2014-11-17 21:15:48