2013-06-18 14 views
6

Sono nel bel mezzo della creazione di poligoni su un nuovo progetto spino a cui sto lavorando. Il problema sorge ogni volta che si passa il mouse sopra InfoWindow, l'evento mouseout sul poligono si attiva. Non voglio che l'evento mouseout si attivi a meno che il mouse non si muova all'esterno del poligono AND di infoWindow. Qualche idea? Ecco la maggior parte del codice pertinente.API di Google Maps: InfoWindow sfarfalla/si chiude automaticamente a causa dell'evento mouseout

infoWindow = new google.maps.InfoWindow({ 
      content: myContent 
    }); 

    var polygon = new google.maps.Polygon({ 
      paths: polygonPath, 
      strokeColor: data.color, 
      strokeOpacity: 0.5, 
      strokeWeight: 0, 
      fillColor: data.color, 
      fillOpacity: 0.5, 
      id:polygonId, 
      name: data.name, 
      shortDesc: data.short_desc, 
      map: map 
    }); 


    google.maps.event.addListener(polygon, 'click', function(e){ 
      infoWindow.open(map); 
      infoWindow.setPosition(e.latLng); 
    }); 

    google.maps.event.addListener(polygon, 'mouseout', function(){ 
      infoWindow.close(); 
    }); 

risposta

15

Invece di mouseout del poligono osservare mousemove per la mappa (questo non viene emesso quando il mouse passa sopra il poligono o l'infowindow)

google.maps.event.addListener(polygon, 'click', function(e){ 
     infoWindow.open(map); 
     infoWindow.setPosition(e.latLng); 
     google.maps.event.addListenerOnce(map, 'mousemove', function(){ 
     infoWindow.close(); 
     }); 
}); 
+0

Si signore, sono un gentiluomo e uno studioso. Grazie. – FajitaNachos

+0

Fantastico, funziona perfettamente! – jhawes

Problemi correlati