【发布时间】:2015-07-26 16:15:51
【问题描述】:
HTML
<div class="test">
<a href="/example/123.html" class="fancybox"> link 1</a>
<a href="/example/123.html" class="fancybox"> link 1</a>
<a href="/example/123.html" class="fancybox"> link 1</a>
</div>
JQuery - 更新
$('.fancybox').each(function(){
$(this).fancybox({
type: 'ajax',
autoHeight: true,
width: 930,
autoSize: false,
autoCenter: true,
fitToView: false,
topRatio: 0,
arrows: false,
closeBtn: true,
closeClick: true,
autoPlay: false,
openSpeed: 1,
closeSpeed: 'fast',
closeClick: false,
live: true,
helpers: {
overlay: {
openSpeed: 'fast'
}
}
});
});
仅尝试过
$('.fancybox').fancybox();
第一个点击的链接将打开fancybox。然后下一个点击的链接将不会打开fancybox,只会显示空白覆盖。
注意到如果使用parent.location.reload(true);,它会通过刷新整个页面然后显示fancybox 来工作。那不是我想要的。每次单击不同的链接并显示fancybox 时它都应该工作而不刷新。
认为使用 ajax 可以让 href 处理然后显示 fancybox 但它不起作用:(
另一件事是Fancybox 似乎不止一次被初始化。如何防止它被多次初始化?
得到错误:`Uncaught TypeError: $(...).fancybox is not a function
有什么方法可以让fancybox 工作而不必每次点击链接都刷新页面?
更新
我编辑了上面的代码,它仍然给我带来麻烦。
【问题讨论】:
-
我对fancybox一无所知,但
live: false必须是live: true吗? -
为什么小提琴中的代码在问题的代码中看起来什么都没有?