可能重複:
Looping through Markers with Google Maps API v3 Problem傳遞值在for循環事件listeners-的Javascript
我有一個循環,其中從我的數組元素中提取某些數據,然後添加一個事件每個迭代的監聽者。但我需要將這些值傳遞給每個關聯的偵聽器,但最終只有偵聽器中的最後一個數組項值。我試圖從"this"瞭解,但解決方案似乎不適合我的情況,我很困惑。這是我的代碼:
for(var i=0;i<route.length;i++)
{
var input= route[i];
var sdata= input.split("@",19)
//Some code
google.maps.event.addListener(marker,'click',showiwindow);
}
function showiwindow(event)
{
var input= event.latLng;
//some code
...
document.getElementById('<%= lbl1.ClientID %>').innerHTML = sdata[1];
document.getElementById('<%= lbl2.ClientID %>').innerHTML = sdata[2];
document.getElementById('<%= lbl3.ClientID %>').innerHTML = sdata[3];
document.getElementById('<%= lbl4.ClientID %>').innerHTML = sdata[4];
......
}
當我點擊一個標記,我只得到了最後一次迭代的值。回到那個鏈接中的解決方案,我該如何傳遞數組以及i
的迭代值。請參閱我的意思鏈接。
@ChrisFrancis:我認爲我在我的問題中提供的鏈接比您提供的更重要。但讓我告訴你,我對他們遵循的解決方法感到困惑,所以不得不提出這個問題。 – Cdeez
@Cdeez有一個閱讀 - > http://james.padolsey.com/javascript/closures-in-javascript/你需要實現一個閉包,這個鏈接解釋他們很好(IMO) – ManseUK