Закрытие информационных окон в Google Maps, нажав на карту?

HTML datepicker () поддерживает атрибут min / max, но не поддерживается широко .

Тем временем вы можете рассмотреть возможность использования bootstrap-datepicker , v1.2.0 включен в github .

Ссылки:

Спецификация W3C

29
задан temporary_user_name 5 April 2012 в 04:54
поделиться

4 ответа

добавить слушателя к событию щелчка на карте и закрыть инфобокс в его обработчике

google.maps.event.addListener(map, "click", function(event) {
    for (var i = 0; i < ibArray.length; i++ ) {  //I assume you have your infoboxes in some array
         ibArray[i].close();
    }
});

Я делаю это на типичных веб-сайтах, но не вижу причин, по которым он не будет работать на мобильных устройствах

36
ответ дан slawekwin 5 April 2012 в 04:54
поделиться

Я заметил некоторые проблемы с другими ответами.

Ответ Маркуса Роммеля и slawekwin:

При щелчке по маркеру происходит событие щелчка по карте. Поэтому, когда щелчок маркера открывает окно, распространение события щелчка на карту немедленно снова закрывает окно.

Ответ пользователя 1724001:

Создание прослушивателя при каждом нажатии на маркер также не очень хорошая идея. Это загрязняет память.

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

marker.addListener("click", function(event) {
    // open your window here
    event.stopPropagation(); // this prevents propagation of marker click to map click
});

map.addListener("click", function() {
    // close your window
});
0
ответ дан kaiser 5 April 2012 в 04:54
поделиться
google.maps.event.addListener(marker, 'click', function() {
    if(!marker.open){
        infoWindow.open(map,marker);
        marker.open = true;
    }
    else{
        infoWindow.close();
        marker.open = false;
    }
    google.maps.event.addListener(map, 'click', function() {
        infoWindow.close();
        marker.open = false;
    });
});

Работает отлично

7
ответ дан user2025187 5 April 2012 в 04:54
поделиться

Попробуйте это:

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

Это довольно просто и должно работать.

48
ответ дан Marcus Rommel 5 April 2012 в 04:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: