当我点击标记时,总是显示相同的数据。。。为什么?
代码:
function load()
{
var dialog = $('<div>').dialog({autoOpen:false});
var map = new google.maps.Map(document.getElementById("map"),
{
center: new google.maps.LatLng(47.6145, -122.3418),
zoom: 13,
mapTypeId: 'roadmap'
});
var infoWindow = new google.maps.InfoWindow;
// Change this depending on the name of your PHP file
downloadUrl("phpsqlajax_genxml.php", function(data)
{
var xml = data.responseXML;
var markers = xml.documentElement.getElementsByTagName("marker");
for (var i = 0; i < markers.length; i++)
{
var name = markers[i].getAttribute("name");
var address = markers[i].getAttribute("address");
var type = markers[i].getAttribute("type");
var point = new google.maps.LatLng
(
parseFloat(markers[i].getAttribute("lat")),
parseFloat(markers[i].getAttribute("lng"))
);
var html = "<b>" + name + "</b> <br/>" + address;
var icon = customIcons[type] || {};
var marker = new google.maps.Marker
({
map: map,
position: point,
icon: icon.icon,
shadow: icon.shadow
});
google.maps.event.addListener(marker, 'click', function()
{
dialog.html(html).dialog('open');
});
}
});
}
试试这个:
第一次更改
google.maps.event.addListener(marker, 'click', function() {...});
至
google.maps.event.addListener(marker, 'click', dial(html));
第二个添加以下功能:
function dial(html){
return function(){
dialog = $('<div>').dialog({autoOpen:false});
dialog.html(html).dialog('open');
}
}
希望它能帮助
K
更改这些行。。。
var marker = new google.maps.Marker
google.maps.event.addListener(marker, 'click', function()
到这些。。。
var marker;
marker[i] = new google.maps.Marker
google.maps.event.addListener(marker[i], 'click', function()