2011-06-13 25 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