2013-06-18 16 views
6

Ich bin mitten in der Erstellung von Polygonen auf ein schickes neues Projekt, an dem ich arbeite. Das Problem tritt auf, wenn Sie den Mauszeiger über das InfoWindow bewegen, das MouseOut-Ereignis auf dem Polygon ausgelöst wird. Ich möchte nicht, dass das mouseout-Ereignis ausgelöst wird, wenn sich die Maus nicht außerhalb des Polygons UND des InfoWindow bewegt. Irgendwelche Ideen? Hier ist der meiste relevante Code.Google Maps API: infoWindow flackert/schließt sich automatisch aufgrund von mouseout-Ereignis

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(); 
    }); 

Antwort

15

Statt mouseout des Polygons beobachtet mousemove für die Karte (dies wird nicht ausgelöst, wenn die Maus über das Polygon oder das Infofenster)

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

Sie meinen Herren, ein Gentleman und ein Gelehrter ist. Vielen Dank. – FajitaNachos

+0

Super, funktioniert perfekt! – jhawes

Verwandte Themen