google map - jquery window problem
When i click on marker always show the same data... why?
code:
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(开发者_JS百科)
{
dialog.html(html).dialog('open');
});
}
});
}
Try this:
1st change
google.maps.event.addListener(marker, 'click', function() {...});
to
google.maps.event.addListener(marker, 'click', dial(html));
2nd add the following function:
function dial(html){
return function(){
dialog = $('<div>').dialog({autoOpen:false});
dialog.html(html).dialog('open');
}
}
Hope it helps
K
Change these lines...
var marker = new google.maps.Marker
google.maps.event.addListener(marker, 'click', function()
to these...
var marker;
marker[i] = new google.maps.Marker
google.maps.event.addListener(marker[i], 'click', function()
精彩评论