2016-07-18 19 views
-1

Ich habe ein Problem mit Google Maps Marker. Tatsächlich habe ich auf meiner Karte mehrere Marker mit einem Ereignis-Listener hinzugefügt, um ein Ereignis beim Klicken auszulösen, aber alle säumen die gleiche Funktion.Google Maps Marker Ereignis Listener klicken

for(var j = 0; j < lat_long.length; j ++) { 
markers[j] = new google.maps.Marker({ 
    position: latitudeAndLongitudeOne, 
    icon: self.icon, 
    scaledSize: new google.maps.Size(50, 50), 
    map: self.map, 
    title: lat_long[i].name 
}); 

google.maps.event.addListener(markers[j], 'click', function() { 
    alert(j); 
}); 

}

Ich habe alert (x), wobei x die ID des letzten Element eingefügt wird. Egal welchen Marker ich anklicke.

Irgendeine Idee? Vielen Dank

Antwort

3
var markers= []; 
for(var i = 0; i < lat_long.length; i ++) { 
    var marker = new google.maps.Marker({ 
     position: latitudeAndLongitudeOne, 
     icon: self.icon, 
     scaledSize: new google.maps.Size(50, 50), 
     map: self.map, 
     title: lat_long[i].name 
    }); 
    marker.addListener('click', function() { 
     alert(marker.title); 
    }); 
    markers.push(marker); 
} 

Ich bin nicht sicher, aber man kann versuchen

1

Dies liegt daran, dass Sie die Markierungen nicht wie Sie definieren können. Erstellen Sie ein globales Array und fügen Sie die Instanzen jedes erstellten Markers in dieses Array ein. So

: Für alle Marker, einen Array definieren die Referenz jeden erstellt Markers zu halten:

var markers = []; //Global Marker Array 
function printMarker(lat, lng){ 
    var marker = new google.maps.Marker({ 
     position: {lat: lat, lng: lng}, 
     icon: icon, 
     map: map 
    }); 
    markers.push(marker); 
} 

Jetzt müssen Sie nur noch witin Sie Schleifen die clicklistener auf die aktuelle Referenz der Markierung hinzufügen.

+0

Entschuldigt ich nur einen Teil des gesamten Code geschrieben habe, wie Sie mir ein Array verwenden, sehen können, ist die Erklärung nicht in dem Teil I schrieb, The Fakt ist, dass ich Markierungen auf der Karte habe. Markierungen auf der Karte sind nicht das Problem! Das Problem ist, den "richtigen" Code anklicken und auslösen zu können. – Jeelig

+0

Ich weiß nicht, ob ich mich selbst verständlich gemacht habe, entschuldige mein armes Englisch – Jeelig