Закрыть инфобокс при нажатии на карту - PullRequest
5 голосов
/ 01 июля 2011

Я использую плагин Infobox для API Карт Google V3 (http://google -maps-utility-library-v3.googlecode.com / svn / trunk / infobox / docs / reference.html)

Не слишком ли закрыта инфобокс, когда пользователь щелкает вне инфобокса, как на карте?

Ответы [ 3 ]

11 голосов
/ 05 мая 2012

на самом деле это намного проще, если у вас есть информационное окно в качестве глобальной переменной или хотя бы одна переменная, представляющая один информационный блок, который вы хотите добавить в удобном месте.

edit: просто чтобы уточнить: например, не должно быть window.myInfoBox. Под глобальным я имею в виду одну точку, где вы ссылаетесь на свой информационный блок

google.maps.event.addListener(map, 'click', function() {
    if(infowindow){
       infowindow.close();
    }
});

вот и все: -)

5 голосов
/ 01 июля 2011

Вы захотите использовать addListener ()

http://code.google.com/apis/maps/documentation/javascript/events.html#EventListeners

Вы можете адаптировать код, найденный здесь:

google.maps.event.addListener(_point.popup, 'domready', function() {
//Have to put this within the domready or else it can't find the div element (it's null until the InfoBox is opened)

    $(_point.popup.div_).hover(
        function() {
            //This is called when the mouse enters the element
        },
        function() {
            //This is called when the mouse leaves the element
            _point.popup.close();
        }
    );
});    

Источник: Google MapsAPI v3 Event mouseover с подключаемым модулем InfoBox

Вы можете обнаружить щелчок карты с помощью:

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

});

Infobox API: http://google -maps-utility-library-v3.googlecode.com/svn/trunk/infobox/docs/reference.html

0 голосов
/ 01 июля 2011

Это может быть полезно для вас ..

var inside = false;
$('#foo').live('mouseenter',function(){ 
    inside=true; 
}).live('mouseleave', function(){ 
    inside=false; 
});
$("body").mouseup(function(){ 
    if(!inside) $('#foo').remove();
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...