2012-06-27 18 views
5

GMaps v3 İşaretleyiciler addListener SorunGMaps v3 İşaretleyiciler addListener

benim belirteçler için mouseover/mouseout olay dinleyicisi eklemek çalışıyorum döngü içinde her zaman son değişken endeksi alınıyor ama ben daima son değeri elde döngü için Tüm olaylarda, bunun yerine akımın son değerini almak gibi görünüyor. İşte sonuç 10 belirteçler için aynı değere sahip bir farenin üzerinde uyarı/çıktı ve ben her alarma işaretleyici id bekliyordum kodum

for(mark in data) { 
    markers[mark] = new google.maps.Marker({ 
       position: new google.maps.LatLng(data[mark].lat,data[mark].lng), map: map, 
      }); 
google.maps.event.addListener(markers[mark], "mouseover", function() { 
       alert(mark); 
      }); 
      google.maps.event.addListener(markers[mark], "mouseout", function() { 
       alert(mark); 
      }); 
     } 

olduğunu. Karşılaştığınız sorun işareti değeridir Selamlar

cevap

10

sayesinde küresel ve döngüde son değere ayarlanır bırakılır. Sorun bir işlev kapatma ile sabitlenebilir. Bunun işe yarayacağını düşünüyorum (test edilmedi):

function createMarker(latlng, id) 
{ 
    var marker= new google.maps.Marker({ 
      position: latlng, map: map, 
      }); 
    google.maps.event.addListener(marker, "mouseover", function() { 
      alert(id); 
      }); 
    google.maps.event.addListener(marker, "mouseout", function() { 
      alert(id); 
      }); 
    return marker; 
} 
for(mark in data) { 
    markers[mark] = createMarker(new google.maps.LatLng(data[mark].lat,data[mark].lng), 
           mark); 
} 
+0

Tamamen haklısınız! – Santiago