有人能告訴我我在做什麼錯嗎?我簡化它下面,但我基本上是試圖創建一個列表,並有一個引用只在循環中可用的變量的單擊事件。如何將可變參數傳遞給使用jQuery的匿名函數?
for (var i = 0; i < data.length; i++) {
$newRow = $(rowFormat);
$('a:first', $newRow).click(function(i){
return function() { alert(i); }
});
$list.append($newRow);
}
你做了 「錯誤」 的事情是稱爲封閉。你給每個點擊函數一個refference給同一個變量'i'。 – ITroubs 2011-04-04 15:06:24
@ITROUBS:他清楚地知道這一點,並試圖解決它(事實上,他沒有給任何*他們提及循環中使用的「i」;他將其隱藏在[外部]匿名函數的參數列表)。他只是忘記了一些括號 - 見大衛的答案。 :-) – 2011-04-04 15:16:29
是的,你是對的。沒有正確地讀取代碼;-) – ITroubs 2011-04-04 15:44:03