5

私はfancyboxをいじっています。私は 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 を使用せずに) ページ自体にアクセスすると、問題なく動作します。

ファンシーボックスを覆すものはありますか?エラーは私にはそれほど明確ではありません。ここですべてを試しましたが、ワードプレスを使用していません。

4

3 に答える 3

17

ページに jquery.fancybox.js を愚かにも 2 回含めたため、まったく同じエラーが発生しました。2 番目の呼び出しを削除するだけで、問題は解決するはずです。

于 2012-10-24T03:07:16.087 に答える
0

私にもこの問題が発生しました。問題は、サーバー サンドボックス環境でテストするために取り組んでいた jsFiddle のソース コードを保存したことです。fancyBox (1.3.4) が jsFiddle から初期化されると、ライトボックスの構築方法に関連する多くの隠し div などが作成されました。これに気づき<divs>、ソース コードから余分なものをすべて削除すると、問題なく動作しました。

于 2016-12-10T03:04:08.477 に答える