0

我正在尝试使用传单生成一个弹出窗口,其中包含一个锚标签,单击该标签时会在花式框窗口中打开网页。使用生成花式框时,这在弹出内容之外工作得很好

<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();

我对这一切都很陌生,所以我怎样才能让它发挥作用?

4

2 回答 2

1

希望你使用 v2

如果您在将链接绑定到 fancybox 插件的位置显示代码,这将有所帮助:

$(function(){
   $(".fancy").fancybox();
});

添加链接后,您可能需要调用此绑定!

第二种选择是直接在链接的 onclick 上调用 fancybox 插件,例如:

<a href="..." class="fancybox.iframe" onclick="$.fancybox(this);return false;">More info</a>
于 2012-02-22T03:23:58.463 回答
0

你是绑定fancybox$(document).ready()还是类似的东西?如果是这样,看起来您的弹出内容当时不存在于 DOM 中。它需要存在才能绑定点击事件。

如果您的地图触发了一个事件,您可以在弹出窗口打开时(当内容被添加到 DOM 时)附加一个回调,那么您可以在那时绑定幻想框点击。看起来您的onMapClick函数可能会起作用,如果这是它将弹出内容添加到 DOM 的地方。如果是这样,请$('whatever').fancybox();在其末尾添加您的。

在最坏的情况下,您可以尝试在<script>inside 之后添加一个标签,<a>var popupContent其中您调用 fancybox 绑定。

于 2012-02-22T02:47:11.020 回答