我有一个带有标记集群和各种点的谷歌地图地图。使用事件侦听器生成如下点,它会在页面加载的每个点上消失。
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 更改为以下内容,则警报会返回未定义。
google.maps.event.addListener(marker[g], 'click', function() {
alert(PermalinksArray[g]);
});
如果我将 PermalinksArray[g] 传递给函数,也会发生同样的事情。当在地图上单击其对应点时,有什么方法可以从数组(全局定义)中获取一条信息?