0

jQuery fancyboxプラグインを使用して、ユーザーがリンクをクリックしたときにレコードに関するコンテキスト情報を含むiframeを表示しています。

.fancybox()プラグインは、ajax成功コールバックの実行時に見つかりません。次のようになります。

$(function() {
    Widgets = {
        show_dialog: function(width, height) {
            $('.fancybox').fancybox({ fancybox settings here});
        }
    }
});

上記のWidgetsオブジェクトが定義されている場合、その直後のブレークポイントをチェックすることで、fancyboxがロードされ、使用可能であることがわかります。次のように$をスコープする無名関数でshow_dialog関数をラップすることで、この関数の呼び出しを修正することもできます。

$(function() {
    Widgets = {
        show_dialog: function($) { return function(width, height) {
            $('.fancybox').fancybox({ fancybox settings here});
        }; }($)
    }
});

その他の背景...postMessagejQueryプラグインを使用して、子フレームから親フレームにメッセージを送信しています(それが重要な場合)(そうすべきではないと思います)

誰かが何が起こっているのか説明できますか?$はページの実行の後半で再割り当てされたように感じますが、どこにもロードしていません。

編集:fancyboxのスコープを$('。fancybox')。fancybox(に更新しました

4

1 に答える 1

0

その呼び出しをある種のオブジェクトにアタッチする必要があるように思えます。$("a.text").fancybox({opts});

表示されるエラーは何ですか? フレーム化されたページまたは親からこのコードを実際に実行していますか?

于 2011-06-14T13:53:50.323 に答える