Как связать событие клика с пользовательским оверлеем с картами Google v3 как в IE, так и в Firefox - PullRequest
6 голосов
/ 23 июля 2011

Я уже создал подкласс для своего объекта наложения в соответствии с инструкцией к документу Google, и моя функция onAdd () приведена ниже:

MyOverlay.onAdd() {
    var div_parent = document.createElement("DIV");
    var div_child = document.createElement("DIV");
    div_child.innerHTML = "Click Me";
    div_parent.appendChild( div_child );
    this.getPanes().overlayLayer.appendChild(div_parent);
    var this = that;
    google.maps.event.addDomListener( div_parent, 'click', function(){
        google.maps.event.trigger(that, 'click'); // from [/3397268/sdelaite-polzovatelskii-overlei-klikabelnym-google-maps-api-v3]
        alert("Clicked");
    } );

}

Мой код может хорошо работать ТОЛЬКО в IE, но в Firefox иChrome, событие нажатия больше не будет срабатывать.

Так как решить проблему?

Ответы [ 3 ]

8 голосов
/ 28 сентября 2011

Вместо использования overlayLayer mapPanes, вы должны использовать overlayMouseTarget.

Ссылка: http://code.google.com/apis/maps/documentation/javascript/overlays.html#CustomOverlays

4 голосов
/ 12 июня 2012

Я знаю, что это старый пост, но если вам интересно, вот решение:

В приведенном выше коде вам нужно изменить функцию наложения с:

this.getPanes (). overlayLayer.appendChild (div_parent);

to:

this.getPanes (). overlayMouseTarget.appendChild (div_parent);

1 голос
/ 17 июля 2012

Также обратите внимание, что хотя ваши события щелчка будут записываться на рабочем столе, даже если вы используете наложенную панель, для работы сенсорных событий необходима целевая панель мыши.

...