Отключение события «клик» на карте Google в области, занятой элементом OverlayView - PullRequest
7 голосов
/ 26 февраля 2011

Я делаю коллаж из карты Google (v3), где есть слушатель карты для события щелчка.

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

Это событие нажатия на карте приводит к созданию нового маркера.Однако я также создаю OverlayView (в floatPane карты Google) с помощью кнопки jQuery при нажатии на маркер.

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'));

}

После нажатия кнопки jQuery сработают как событие нажатия кнопки jQuery, так и событие нажатия карты Google, но я хочу, чтобы срабатывал только нажатие кнопки jQuery.

Я по-прежнемухотите включить событие щелчка на карте, но не там, где находится div OverlayView.Любые идеи о том, как обойти это?

Ответы [ 2 ]

5 голосов
/ 28 февраля 2011

Я немного больше искал на форуме карт Google и нашел эту тему: http://groups.google.com/group/google-maps-js-api-v3/browse_thread/thread/ef6e8e2942421bab/ff3739505eb833df?pli=1. Отмена распространения события на карту решила проблему.

0 голосов
/ 23 августа 2011

Ваш пост действительно помог мне лучше понять это, так как я работаю над чем-то точно таким же, как это.

Интересно отметить - мне было неясно, пока я не прочитал этот пост - это в APIобъект jquery не может быть создан в методе onAdd .Вы должны выполнить jquery в методе draw .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...