$ .fancybox.cancel不起作用

问题描述

| 我正在使用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\');