Вызов Fancybox из прослушивателя событий в Картах Google вместо информационного окна по умолчанию

Я хочу заменить InfoWindow API Google Maps по умолчанию наложением Fancybox.

Версия

API Карт Google 3.0

Цель

Замените информационное окно по умолчанию всплывающим окном Fancybox.

Случай использования

  1. Карта Google загружается в полноэкранном режиме (100% на 100%)
  2. Маркеры размещаются на карте
  3. Пользователь нажимает на маркер и показывает всплывающее окно Fancybox, которое накладывается на карту.
  4. Пользователь нажимает «X» в правом верхнем углу Fancybox, чтобы закрыть его.

Я в растерянности, как лучше с этим справиться. Проще всего вызвать Fancybox с помощью обработчика событий addListener, передав маркер в качестве параметра? Если да, то как бы кто-нибудь из вас порекомендовал это сделать?

Например:

google.maps.event.addListener(marker, 'click', function(){
    // Call Fancybox, but how?
});

Заранее спасибо,

Грэм Кеннеди


person Graham Kennedy    schedule 26.01.2011    source источник


Ответы (1)


Я обнаружил, что лучший способ сделать это — передать ваш контент вручную с помощью метода Fancybox href. Работает как шарм для меня.

function addMarker(data) {

    // build the window contents
    var contentForBox = data;

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

        $.fancybox({
            href: contentForBox
            // other options
        });


    });
}
person lukeshumard    schedule 18.05.2011
comment
Привет @lukeshumard, извините за поздний ответ. Я не заметил, что это был открытый вопрос. Я не могу вспомнить, сработало ли ваше решение, но я считаю, что оно способствовало окончательному решению, поэтому я отмечу его как ответ. - person Graham Kennedy; 17.10.2012