2011-02-26 17 views
6

Estoy haciendo un mashup de google map (v3) donde hay un detector de mapas para un evento de clic.Deshabilitar el evento de 'clic' de Google Map en el área ocupada por OverlayView div

google.maps.event.addListener(map, 'click', function(event) {addMarker(event)}); 

Este evento de clic en el mapa da como resultado la creación de un nuevo marcador. Sin embargo, también estoy construyendo un OverlayView (en el flotantePanel del mapa de google) con un botón jQuery al hacer clic en un marcador.

markerDialogOverlay.prototype.onAdd = function() 
{ 
    var divToAdd = document.createElement('div'); 
    divToAdd.id = 'markerHelper'; 
    divToAdd.title = 'Edit Marker'; 
    this.div = divToAdd; 

    var panes = this.getPanes(); 
    panes.floatPane.appendChild(this.div); 

    this.jqdiv = $('#markerHelper'); 
    this.jqdiv.empty(); 
} 

markerDialogOverlay.prototype.draw = function() 
{ 

    overlayProjection = this.getProjection(); 

    var posxy = overlayProjection.fromLatLngToDivPixel(this.marker.getPosition()); 

    this.jqdiv.css({ 'z-index': '1', 
        'left': posxy.x + 'px', 
        'top': posxy.y + 'px', 
        'position' : 'absolute'}); 

    this.jqdiv.append($('<button id="deleteMarker">Delete</button>').button().click(function(){deleteLocation(this.marker)}).hide().fadeIn('slow')); 

} 

Al hacer clic en el botón de jQuery, tanto el evento de clic de botón jQuery y el evento del mapa, en Google se disparan, pero quiero simplemente haga clic en el botón de jQuery para ser disparado.

Todavía quiero habilitar el evento de clic de mapa simplemente no donde se encuentra el div OverlayView. ¿Alguna idea sobre cómo solucionar esto?

Respuesta

0

su publicación realmente me ayudó a entender esto mejor ya que también estoy trabajando en algo como esto.

interesante de notar - No estaba claro hasta que leí esta publicación - es que en la API, no se puede crear un objeto jquery en el método onAdd. tienes que hacer el jquery en el dibujar el método.

Cuestiones relacionadas