我有一個帶有標記羣和各種點的Google地圖。使用事件偵聽器生成如下所示的點,它將在頁面加載時爲每個點生成點。谷歌地圖v3聽衆(點擊) - 更改網址
function mappyfuntime() {
var mapOptions = {
center: new google.maps.LatLng(51.481581,-3.17909),
zoom: 4,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("bigmap"), mapOptions);
<?php echo prepare_javascript(); ?>
var markers = [];
var marker = [];
linkto = new Array();
for(g=0; g<LocationsArray.length; g++) {
var latlng = new google.maps.LatLng(LocationsArray[g][0], LocationsArray[g][1]);
marker[g] = new google.maps.Marker({'position': latlng});
markers.push(marker[g]);
google.maps.event.addListener(marker[g], 'click', click_handler(PermalinksArray[g]));
}
var markerCluster = new MarkerClusterer(map, markers);
}
mappyfuntime();
function click_handler(link) {
alert(link);
}
但是,如果我將google.maps.event.addListener更改爲以下內容,則警報將返回undefined。
google.maps.event.addListener(marker[g], 'click', function() {
alert(PermalinksArray[g]);
});
如果我將PermalinksArray [g]傳遞給該函數,則會發生同樣的情況。當在地圖上點擊相應的點時,是否有任何方法可以從數組中獲取一條信息(全局定義)?
是否這樣做,但PermalinksArray和g仍然會在函數中返回爲undefined。使用:\t \t google.maps.event.addListener(標記並[g], '點擊',功能(PermalinksArray,克){ \t \t \t警報(PermalinksArray [G]); \t \t}); 仍彈出「未定義」提醒。如果您想查看,代碼位於http://fused.org.uk/mappy。 –
範圍不應該順便說一句。你有標記和標記扭曲。你正在使用標記[g]並將標記推入標記。如果那有意義的話。您應該創建一個標記並將其推入標記數組中。 – nooitaf