Fancy Box 2自动关闭div?

时间:2014-06-21 13:49:28

标签: jquery fancybox fancybox-2

所以我在div上使用fancybox 2。但由于某种原因,当我单击div和fancybox打开时,它会隐藏div(仅显示包装div的轮廓),而我可以获得div的唯一方法是重新加载页面。其他人有这个问题吗?如果是这样,我该如何解决?

昨晚我搜索了谷歌,无法找到有这个问题的人。在阅读license page之后,我认为fancybox 2不支持onCloseonStart属性。

这是我的div

<div class='photo'><img class='fancybox' src='images/jpge1.jpg></div>
$(document).ready(function()  {
    $('.fancybox).click(function() {
        $('.fancybox').fancybox();
    });
});

1 个答案:

答案 0 :(得分:2)

您的代码存在一些问题(未提及语法错误:您的src属性且您的jQuery选择器未正确引用已关闭)

  1. 如果您将fancybox绑定到锚<a>以外的其他元素,则fancybox会将其视为内联内容,并始终将其放回display:none属性。

  2. 当你这样做时

    $(document).ready(function()  {
        $('.fancybox).click(function() {
            $('.fancybox').fancybox();
        });
    });
    

    click选择器上的第一个.fancybox仅将自己绑定到fancybox,但它只会在第二个click

  3. 之后触发fancybox

    因此,如果您想将fancybox正确绑定到锚点以外的元素(在您的情况下为div),然后在fancybox内打开图像(位于div内)而不隐藏它关闭fancybox后,你必须这样做:

    通过将 fancybox设置为div,将fancybox绑定到img,而不是<div class='photo fancybox'> <img src='images/jpge1.jpg' /> </div> 标记

    $(document).ready(function () {
        $('.fancybox').click(function () {
            var href = $(this).find("img").attr("src");
            $.fancybox({
                href: href,
                type: "image"
            });
            return false;
        });
    });
    

    然后使用此代码:

    {{1}}

    参见 JSFIDDLE