2011-06-13 90 views
0

当我点击标记始终显示相同的数据...为什么?谷歌地图 - jquery窗口问题

代码:

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'); 
    }); 
    } 
}); 

}

+0

如何infowindo w与对话联系在一起?我看到你创建了一个InfoWindow,但你从来没有做过任何事情。然后在我期望看到InfoWindow代码的事件监听器中看到对话框。什么关系? – Khepri 2011-06-13 21:40:20

+0

不,我不想看到infowindow。我想看到infowindow的jquery窗口(对话)insted,但在jQuery对话框中我看到相同的数据。请参阅http://kuponik.adriamart.com/davidimo.html – Andrew 2011-06-13 21:56:17

+0

上次评论中[link you posted](http://kuponik.adriamart.com/davidimo.html)上没有标记。 – Sparky 2011-06-13 22:24:57

回答

1

试试这个:

第一变化

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'); 
} 
} 

希望它可以帮助

ķ

+0

您感到惊讶......感谢! – Andrew 2011-06-13 23:38:03

0

更改这些行...

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() 
+0

我认为只有当'var marker'移出“for”循环时才会有效 – kwicher 2011-06-13 23:09:46

+0

谢谢,但不工作:( – Andrew 2011-06-13 23:11:08

+0

这不是标记问题...问题是显示所有标记的相同数据的窗口。 – Andrew 2011-06-13 23:12:04