问题描述
|
我正在使用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();
}
}
});
});
但取消和关闭无效。如果close()多余,假设cancel()有效,我不会感到惊讶...
谢谢
罗伯
编辑:这是主图像的一些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,selectedOpts) {
var element = selectedArray[selectedindex];
if ($(element).parent(\'li\').length > 0) {
$.fancybox.cancel();
$.fancybox.close();
$(\'#fancy_close\').trigger(\'click\');
$(element).click();
}
}
});
});
解决方法
我有同样的问题。
只需在onStart中返回false,它将取消加载。
, 尝试这个:
$.fn.fancybox.close();
或这个:
$(\'#fancy_close\').trigger(\'click\');