5

我一直在玩花式盒子。我在 CakePHP 框架中工作,并制作了一个管理面板。这个面板有几个选项,我通过 AJAX 将它们加载到页面本身的 Div 中。

现在,当我将图像放入此 div 并尝试使用 Fancybox 时,单击图像(放大)时出现此错误:

Uncaught TypeError: Cannot call method 'hide' of undefined
N
I
b.fn.fancybox
f.event.dispatch
f.event.add.h.handle.i

现在这是我的 ajax 加载器(functions.js)

$(".cmsPage").click(function() {
    var url = $(this).attr("href");

    $.ajax({
        url: url,
        success: function(data){
            $("#admin_wrapper").fadeIn('slow');
            $("#admin_content").fadeIn('slow');
            $("#admin_close").fadeIn('slow');
            $("#admin_content").html(data);

        }
    });
    return false;
});

admin_content 是显示图像的位置:

#admin_content{
    display:none;
    position:absolute;
    z-index:10;
    background-color:#fff;
    opacity:1;
    width:1000px;
    min-height:500px;
    top:1%;
    color:black;
    padding:10px;
    margin:10px;
    border:solid black 1px;
    border-radius:5px;          
}

但是,如果我转到页面本身(不使用 ajax),它工作得非常好。

有什么东西可以推翻fancybox吗?这个错误对我来说不是那么清楚。我在这里尝试了一切但我没有使用wordpress。

4

3 回答 3

17

我遇到了同样的错误,因为我愚蠢地在页面上包含了 jquery.fancybox.js 两次。只需删除第二个电话,问题就应该得到解决。

于 2012-10-24T03:07:16.087 回答
1

我有同样的问题,问题是,fancybox 不止一次被初始化。只需要确保,初始化一次。

于 2014-01-23T13:27:48.250 回答
0

我也遇到过这个问题。问题是我保存了一个 jsFiddle 的源代码,我一直在努力在服务器沙箱环境中对其进行测试。当从 jsFiddle 初始化 fancyBox (1.3.4) 时,它创建了很多隐藏的 div 以及与灯箱构建方式相关的这些。一旦我注意到这一点并<divs>从源代码中删除了所有这些额外内容,它就可以正常工作了。

于 2016-12-10T03:04:08.477 回答