Создание рамки для фантазии из всплывающего окна
Я пытаюсь, чтобы всплывающее окно, созданное с помощью листовки, содержало тег привязки, который при нажатии открывает веб-страницу в окне fancybox. Это прекрасно работает вне всплывающего контента при генерации fancybox с использованием
<a class='fancybox.iframe' href='http://en.wikipedia.org/wiki/Space_Needle'>More Info</a>"
но когда я помещаю это во всплывающее окно листовки, fancybox не работает, и он просто открывается в новом окне.
var markerLocation = new L.LatLng(47.6204, -122.3491),
marker = new L.Marker(markerLocation);
map.addLayer(marker);
var popupContent = "<a class='fancy fancybox.iframe' href='http://en.wikipedia.org/wiki/Space_Needle'>More Info</a>";
marker.bindPopup(popupContent);
map.on('click', onMapClick);
var popup = new L.Popup();
Я довольно новичок во всем этом, так как я могу заставить его работать?
2 ответа
Надеюсь, что вы используете v2
было бы полезно, если бы вы показали свой код, где вы привязываете свою ссылку к плагину fancybox, что-то вроде:
$(function(){
$(".fancy").fancybox();
});
возможно, вам нужно будет позвонить по этой ссылке после добавления вашей ссылки!
Второй вариант - вызвать плагин fancybox непосредственно при щелчке ссылки:
<a href="..." class="fancybox.iframe" onclick="$.fancybox(this);return false;">More info</a>
Вы привязываете фантазийный ящик на $(document).ready()
или что-то подобное? Если это так, похоже, что ваш всплывающий контент не существует в DOM в то время. Он должен существовать, чтобы связать с ним событие клика.
Если ваша карта вызывает событие, к которому вы можете прикрепить обратный вызов, когда открывается всплывающее окно (когда контент добавляется в DOM), тогда вы можете привязать щелчок fancybox в это время. Похоже, ваш onMapClick
Функция может сделать свое дело, если именно там она добавляет всплывающее содержимое в DOM. Если это так, добавьте свой $('whatever').fancybox();
в конце этого.
В худшем случае вы можете попробовать добавить <script>
тег после <a>
в var popupContent
, в котором вы называете привязку fancybox.