就像我在我的评论中提到的那样,您需要将fancybox init移出内联点击处理程序,移入您的JS文件。
$(document).ready(function() {
// Attach fancybox to every .image-spacer div
$("img-spacer").fancybox({
href : '#portfolio-1',
width: 1040,
margin: 0,
padding: 0,
closeBtn: false,
onUpdate: function() {
alert('update!');
},
onCancel: function() {
alert('cancel!');
},
onPlayStart: function() {
alert('play start!');
},
onPlayEnd: function() {
alert('play end!');
},
beforeClose: function() {
alert('before close!');
},
afterClose: function() {
alert('after close!');
},
beforeShow: function() {
alert('before show!');
},
afterShow: function() {
alert('after show!');
},
beforeLoad: function() {
alert('before load!');
},
afterLoad: function() {
alert('after load!');
}
});
// On clicking a .img-spacer div, attach a bxSlider
$(".portfolio").click(function(){
$('.bxslider').bxSlider({
auto: true,
controls: false,
pager: false
});
});
});
以及用于在HTML
<div class="img-spacer"></div>
给这一个镜头,让我知道如何去。如果你把它放在现场,我可以在那里看看它。
每次点击图片时,都会创建一个fancybox的新实例。所以当你点击2次以上时,两个fancybox实例都会尝试移动图像,并且你看到的是一团糟。你需要做的是关闭窗口时停止/销毁fancybox。 – GAntoine
我想你的意思是强迫关闭fancybox(因为我没有在文档中看到停止或破坏功能)。我尝试使用$ .fancybox.close(true)强制fancybox关闭;但这并没有什么区别。 – Casper
我这样做,我会很快发布一个答案,你需要做什么。 – GAntoine