我正在尝试使用传单生成一个弹出窗口,其中包含一个锚标记,当单击该标记时会打开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();
我对这一切都很陌生,所以我怎样才能让它发挥作用?
答案 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绑定。