2017-09-11 2 views
-1

Ich habe eine Fehlermeldung "Kann nicht lesen Property" undefined "beim Versuch, ein InfoWindow in Google Maps API zu öffnen. Aber wenn ich rufe infoWindows [i] .setMap (Karte) außerhalb von 'Marker [i] .addListener' alles ist in Ordnung. Hier ist mein CodeFehler Beim Öffnen von InfoWindow (google maps api)

var devices = new Array(); 
var marker = new Array(); 
var infoWindows = new Array(); 
devices = <?= json_encode($devices); ?> 
function initMap() { 
    map = new google.maps.Map(document.getElementById('map_canvas'), { 
     center: {lat: 49.062415, lng: 31.704558}, 
     zoom: 6, 
    }); 
    initMarkers(); 
} 

function initMarkers(){ 
    for(var i=0; i< devices.length; i++){ 
     marker[i] = new google.maps.Marker({ 
      position: {lat: parseFloat(devices[i]['lat']), lng: 
       parseFloat(devices[i]['lon']) 
      }, 
      map: map, 
      icon: mIcon, 
     }); 
     infoWindows[i] = new google.maps.InfoWindow({content: devices[i]['infoData']}); 
     marker[i].setMap(map); 
     marker[i].addListener('click', function() { 
      infoWindows[i].open(map, marker[i]); 
     }); 
    } 
} 
+1

Bereich schließen Problem - das 'i', das Sie in' Marker [i] 'verwenden bezieht sich nicht auf das, was Sie möchten es nicht mehr getan hat. –

Antwort

0

Es ist ein Rahmen Schließung Problem - Sie können es durch den Aufruf einer Funktion zu beheben, so dass i gleich bleibt, aber man sollte auch auf sie ein bisschen lesen,.

+0

Danke, mein Herr, hat für mich gearbeitet –

Verwandte Themen