2013-03-21 51 views
-1

大家好我有一個網站,我使用谷歌地圖。 問題是:我在地圖上添加了一些標記,並且我想要點擊每個標記,並將其數據提醒給我。 使用我的代碼只警告最後一個(test9),因爲變量是相同的。如何添加一個動態變量的偵聽器? 這是我的代碼:事件點擊動態變量

for (i = 0; i<10; i++){ 
    myLatlng = new google.maps.LatLng((44.900)+(i/10), 11.634521); 
    var marker = new google.maps.Marker({ 
     position: myLatlng, 
     map: map, 
     title:"Hello World!"+i, 
     data:"test"+i 
    }); 
    google.maps.event.addListener(marker, 'click', function() { 
     alert(marker.data); 
    }); 
} 
+0

如果更改alert(marker.data),會發生什麼情況;提醒(this.data);我認爲這裏有一個關閉問題,其他人可能會更好地解釋! – TommyBs 2013-03-21 16:12:41

+0

是的,但是如果我不想使用「this」?有可能嗎? @TommyBs – 2013-03-21 16:16:12

+0

只是出於好奇,爲什麼你不想使用'這'? – TommyBs 2013-03-21 16:17:42

回答

1

好的嘗試添加新的功能,如addMarkerFunction(標記)

function addMarkerFunction(marker){ 
     google.maps.event.addListener(marker, 'click', function() { 
    alert(marker.data); 
     }); 
    } 

然後編輯您的for循環的代碼是:

for (i = 0; i<10; i++){ 
myLatlng = new google.maps.LatLng((44.900)+(i/10), 11.634521); 
var marker = new google.maps.Marker({ 
    position: myLatlng, 
    map: map, 
    title:"Hello World!"+i, 
    data:"test"+i 
}); 
    addMarkerFunction(marker); 
} 

刪除對google.maps.event.addListener的調用

+0

Thabks它工作正常+1沒有「這個」 – 2013-03-21 16:46:14