Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Как запустить модальное окно из информационного окна google maps? (https://javascript.ru/forum/jquery/21305-kak-zapustit-modalnoe-okno-iz-informacionnogo-okna-google-maps.html)

www123 04.09.2011 19:25

Как запустить модальное окно из информационного окна google maps?
 
День добрый!

Столкнулся с такой проблемой: Не получается открыть модальное окно по ссылке из инфо окна google maps (код самой карты установлен на сайте, тестирую его на Денвере).:help:

Привожу часть кода где возникла проблемка:

else if (fest == 'm9y2011p19211'){return "<div class=\"festDetail\"><strong>Arches Live!</strong><em>22 September&ndash;1 October 2011</em><p>Arches Live! is a festival of brave new work from local artists. It was here Nic Green developed her show <em>Trilogy</em> prior to scooping all sorts of awards at the Edinburgh Fringe of 2009 and beyond – and she was back again last year with the well received work-in-progress, <em>Fatherland, Motherland.</em> Other artists at previous Arches Live festivals have included Nic’s co-performer Murray Wason, Glas(s) Performance and Kieran Hurley.</p><a href=\"ajax/regular.html\" rel=\"prettyPopin\">More details&hellip;</a></div>";}

Непосредственно по этой ссылке (выделено жирным) должно открыться модальное окно, но... оно не хочет открываться. Открывается просто новая страница regular.html

При прописывании этой ссылки вне инфо окошка google maps всё прекрасно работает.

Подскажите в чём может быть загвоздка и как исправить.


Буду признателен за ответ рубящих фишку в этом деле людей.:write:

walik 04.09.2011 20:11

Возможно ссылка создается при появлении подсказки и соответственно когда вы привязываете к ней скрипт, ее еще нет на странице. Попробуйте привязать к ней скрипт когда будет появляться подсказка

www123 04.09.2011 20:53

walik, если можно напишите подробней как это сделать или ссылку на пример скиньте. Целый день мучаю код и не выходит. Я так понимаю почему-то не реализуется функция rel=\"prettyPopin\.

Скрипт вывода всплывающего окна выглядит так:

<script type="text/javascript" charset="utf-8">
$(document).ready(function(){
$("a[rel^='prettyPopin']:eq(0)").prettyPopin({width: 550,followScroll:false});
$("a[rel^='prettyPopin']:eq(1)").prettyPopin({width:300});
$("a[rel^='prettyPopin']:eq(2)").prettyPopin({
callback : function(){
alert('This popin has a callback');
}
});
});
</script>

Так же есть привязка к библиотекам JQuery.

walik 04.09.2011 21:03

В примере кода который вы привели в первом сообщении, как я понимаю, там вы из функции возвращаете HTML код который должен быть создан в окне подсказке, вот вам и надо после того как окно подсказки будет создано, выполнить код который вы выполняете при document-ready (из предыдущего поста).

Вы пытаетесь привязать prettyPopin к ссылке в самом начале, которой как таковой на странице не существует.

Можете попробовать воспользоватся плагином livequery, то есть с его помощью отлавливать появления элемента. Это конечно в случае если моя теория об ошибке верна :)

www123 04.09.2011 23:06

В первом примере я из функции вывода инфо-окошка карт google пытаюсь вывести всплывающее окно (с расширенной текстовой информацией). Но почему же тогда HTML код который должен быть создан в окне подсказки свободно выводится, когда я пишу ссылку вне скрипта инфо-окна карт google на этой же странице?

Ведь функция вывода инфо окон и модального окна находятся в одном HTML документе.


Сорри, если я вас неправильно понял, всё равно спасибо за ответ. Буду копать.

P.S/: только начинаю осваивать JQuery и привязку его к картам гугла.

walik 04.09.2011 23:38

Так как когда вы ставите ссылку просто в страницу, то она получается что уже есть в документе и все работает. А в окне карт, вы указываете какой HTML код в нем будет выведен, но сам элемент (ссылка) еще не создан, он будет создан когда будет показана окошко.

Советую вам подучить все же Javascript что бы хотя бы понимать что я имею в виду (вроде как нормально объясняю) :)


Часовой пояс GMT +3, время: 08:36.