$ .fancybox.cancel()不起作用

时间:2011-05-27 20:10:10

标签: jquery jquery-plugins fancybox

我正在使用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();
            }
        }
    });
});

2 个答案:

答案 0 :(得分:8)

我遇到了同样的问题。

只需在onStart中返回false,它就会取消加载。

答案 1 :(得分:0)

试试这个:

$.fn.fancybox.close();

或者这个:

$('#fancy_close').trigger('click');