从传单弹出窗口生成fancybox框架

时间:2012-02-22 02:31:37

标签: jquery html fancybox cloudmade

我正在尝试使用传单生成一个弹出窗口,其中包含一个锚标记,当单击该标记时会打开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 个答案:

答案 0 :(得分:1)

希望你使用v2

如果您显示将链接绑定到fancybox插件的代码,这将有所帮助 类似的东西:

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

也许您需要在添加链接后调用此绑定!

第二个选项是直接在链接的onclick上调用fancybox插件 类似的东西:

<a href="..." class="fancybox.iframe" onclick="$.fancybox(this);return false;">More info</a>

答案 1 :(得分:0)

你是否绑定了$(document).ready()上的fancybox或类似的东西?如果是这样,那么当时DOM中不存在您的弹出内容。它需要存在才能将click事件绑定到它。

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

在最糟糕的情况下,您可以尝试在<script> <a>之后添加var popupContent标记,您可以在其中调用fancybox绑定。