0
好吧,這是可能是因爲它幾乎肯定的「按值傳遞」與按引用傳遞的問題,一個尷尬的問題。我正在使用Google Maps JavaScript API v3並嘗試填充自己的自定義地圖標記。每個標記對應於lat,long和關於該位置的「註釋」的位置,並被編碼爲數組內的對象。然而,在設置標記是在循環精細,創建一個監聽器,動態觸發更新與有關位置的註釋另一個DIV似乎並不奏效:谷歌地圖標記點擊按值傳遞
var myList = [ { lat: ..., lon: ..., title: ..., comment: ... }, { object repeats } ];
for (var i = 0; i < myList.length; i++) {
// bunch of code setting up the marker
var myMarker = new google.maps.Marker...
google.maps.event.addListener(myMarker, 'click', function()
{
$('myDiv').empty().append(myList[i].comment);
}
現在,一切正常,除了代碼在addListener中的匿名函數中。看起來.comment不是通過值傳遞的,而是通過引用(這是有道理的),但效果是.append()不追加任何東西,因爲循環經過位置數組的最後一個索引,並且當.append被稱爲試圖清空null或未定義的值。任何洞察到如何解決這個問題?
太棒了!這工作。我甚至不知道「關閉」,我是一名CS專業人士...... -__- – 2012-07-30 16:54:26