2015-10-16 66 views
0

以下代碼存在問題.. Google地圖標記顯示正常,但關聯的信息窗口不會在點擊時顯示。點擊時,不會發生任何操作。有什麼建議麼?謝謝!谷歌API循環信息窗口問題

var length = data[0].length; 

var infowindow = []; 
var contentString = []; 
var marker = []; 

for (var i = 0; i < length; i++) { 

    var x = data[0][i].number; 

    var pos = new google.maps.LatLng(data[0][i].lat, data[0][i].long); 

    marker[i] = new google.maps.Marker({ 
     position: pos, 
     map: map, 
     icon: 'http://maps.google.com/mapfiles/ms/icons/' + data[0][i].color + '-dot.png', 
     description: data[0][i].providerfirst, 
     id: i 
    }); 

    //document.write(marker[i].icon); 


    contentString[i] = '<div id="content" class="infowindow">' + 
     '<div id="siteNotice">' + 
     '</div>' + 
     '<h1 id="firstHeading" class="firstHeading"> ' + data[0][i].providerfirst + ' ' + 
     data[0][i].providerlast + ', ' + data[0][i].credentials + '</h1>' + 
     '<p>' + 
     data[0][i].address + '<br>' + 
     data[0][i].city + ', ' + data[0][i].state + ', ' + data[0][i].zip + '<br>' + 
     '</p>' + 
     '<p>NPI: ' + data[0][i].npi + '</p>' + 
     '<p>Network: ' + data[0][i].type + '</p>' + 
     '<div id="bodyContent">' + 
     '</div>' + 
     '</div>'; 

    //document.write(contentString[i]); 


    //document.write(infowindow[i].content); 

    infowindow[i] = new google.maps.InfoWindow({ 
     content: contentString[i] 
    }) 

} 
+0

您沒有任何事件監聽器來點擊標記。 – duncan

回答

0

u需要把

contentString[i] = '<div id="content" class="infowindow">' + 
         '<div id="siteNotice">' + 
         '</div>' + 
         '<h1 id="firstHeading" class="firstHeading"> ' + data[0][i].providerfirst + ' ' + 
         data[0][i].providerlast + ', ' + data[0][i].credentials + '</h1>' + 
         '<p>' + 
         data[0][i].address + '<br>' + 
         data[0][i].city + ', ' + data[0][i].state + ', ' + data[0][i].zip + '<br>' + 
         '</p>' + 
         '<p>NPI: ' + data[0][i].npi + '</p>' + 
         '<p>Network: ' + data[0][i].type + '</p>' + 
         '<div id="bodyContent">' + 
         '</div>' + 
         '</div>'; 

         //document.write(contentString[i]); 


        //document.write(infowindow[i].content); 

        infowindow[i] = new google.maps.InfoWindow({ 
        content: contentString[i]}) 

這部分代碼在一個函數像

function setInfoWindow(i){ 
//all this here 
} 

ü需要理解JavaScript概念 https://www.youtube.com/watch?v=8aGhZQkoFbQ

+0

感謝您的迴應,但我得到的建議完全相同的行爲。 – jwbiscayne

0

你需要一個點擊處理程序,只是因爲你創建了infowindow和數據,你h沒有以我能看到的任何方式將它們關聯起來

marker[i].addListener('click',function(){ 
    infowindow[i].open(map,marker[i]); 
});