我正在使用fancybox在图库中显示一些图像。我有一张主图像,下面有一堆缩略图。如果单击主图像,则应显示fancybox,但如果单击缩略图则会替换主图像。我已经把主图像切换连接到了其他地方,但我的问题是我想要在点击缩略图时停止显示fancybox。我有这段代码:
$(this).fancybox({
onStart: function(selectedArray, selectedIndex, selectedOpts) {
var element = selectedArray[selectedIndex];
if ($(element).parent('li').length > 0) {
$.fancybox.cancel();
$.fancybox.close();
$(element).click();
}
}
});
});
但是取消和关闭不起作用。假设cancel()有效,那么close()是多余的,我不会感到惊讶......
感谢
罗布
编辑:这是主图像的一些html:
<a href="/uploadedImages/About_Something/Carousel/Landing_mainImage.png" id="ctl00_ContentPlaceHolder1_aMainImage" class="fancyBox" rel="gallery">
<img id="ctl00_ContentPlaceHolder1_imgMainImage" src="/uploadedImages/About_Something/Carousel/Landing_mainImage.png" alt="1" style="border-width:0px;" />
</a>
这是缩略图项目之一:
<a href="/uploadedImages/About_Something/Carousel/Landing_mainImage_2.png" class="fancyBox" rel="gallery">
<img src="/uploadedImages/About_Something/Carousel/Landing_mainImage.png " alt="/uploadedImages/About_Something/Carousel/Landing_mainImage.png " />
</a>
然后更多的javascript看起来像这样:
$('a.fancyBox').each(function(i) {
if ($(this).parent('li').length > 0) {
$(this).click(function(e) {
e.preventDefault();
});
}
$(this).fancybox({
onStart: function(selectedArray, selectedIndex, selectedOpts) {
var element = selectedArray[selectedIndex];
if ($(element).parent('li').length > 0) {
$.fancybox.cancel();
$.fancybox.close();
$('#fancy_close').trigger('click');
$(element).click();
}
}
});
});
答案 0 :(得分:8)
我遇到了同样的问题。
只需在onStart中返回false,它就会取消加载。
答案 1 :(得分:0)
试试这个:
$.fn.fancybox.close();
或者这个:
$('#fancy_close').trigger('click');