0

私は十数件の投稿と回答を読みました...無駄に。

この単純なコードの何が問題なのか、ここで何が欠けているのでしょうか。試行されたコールバックはどれも機能しません。

$("#project_info").fancybox({
        'onComplete': 関数() {
            console.log('これを記録');
            //$.cookie('fcookie', '1', {パス: ' / '});
        }
    });
$("#project_info").fancybox().trigger("クリック");

とhtml

<a id="project_info" href="#project_display"></a>
<div style="display: none;">
    <div id="project_display" style="幅:100px; 高さ:100px; オーバーフロー:自動;">
    Lorem ipsum dolor sit amet, consectetur adipiscing elit.
    </div>
</div>

注: ローカル ワンプ

編集:リモートサーバーでもテスト-相互作用を防ぐためにファイルを削除-同じ結果

4

2 に答える 2

0

最終的に使用したソリューションと実行したテストを投稿するために、私は自分の質問に答えています。多分誰かがそれを便利だと思うでしょう。

ファンシーボックス 1.3 には、cookie が使用されている場合にコールバックを強制終了するものがあります。

テストする時間がありません、それは何ですか。

誰でも知っていますか?以下に書いてください。

注意: .trigger("click") 経由で Cookie を設定しようとしたときに、同じことが起こりました。コールバックは標準のクリックで正常に動作します。

私が試したこと - 失敗しました。

//試行 1: 動作しません
$("#project_info").fancybox({
    onComplete: 関数() {
    $.cookie('fcookie', '1', {パス: ' / '});
    }
});
$("#project_info").fancybox().trigger("クリック");

//試行 2: 動作しません
関数 StoreCookie() {
    $.cookie('fcookie', '1', {パス: ' / '});
}
$("#project_info").fancybox({
    onComplete: 関数() {
    StoreCookie()
    }
});
$("#project_info").fancybox().trigger("クリック");

//試行 3: 動作しません
関数 StoreCookie() {
    $.cookie('fcookie', '1', {パス: ' / '});
}
$("#project_info").fancybox({
    onComplete: StoreCookie
});
$("#project_info").fancybox().trigger("クリック");

//試行 3: 動作しません
関数 StoreCookie() {
    $.cookie('fcookie', '1', {パス: ' / '});
}
$("#project_info").fancybox({
    ///
});
$("#project_info").fancybox().trigger("click", StoreCookie());//試行 1: 動作しません
$("#project_info").fancybox({
    onComplete: 関数() {
    $.cookie('fcookie', '1', {パス: ' / '});
    }
});
$("#project_info").fancybox().trigger("クリック");

//試行 2: 動作しません
関数 StoreCookie() {
    $.cookie('fcookie', '1', {パス: ' / '});
}
$("#project_info").fancybox({
    onComplete: 関数() {
    StoreCookie()
    }
});
$("#project_info").fancybox().trigger("クリック");

//試行 3: 動作しません
関数 StoreCookie() {
    $.cookie('fcookie', '1', {パス: ' / '});
}
$("#project_info").fancybox({
    onComplete: StoreCookie
});
$("#project_info").fancybox().trigger("クリック");

//試行 3: 動作しません
関数 StoreCookie() {
    $.cookie('fcookie', '1', {パス: ' / '});
}
$("#project_info").fancybox({
    ///
});
$("#project_info").fancybox().trigger("クリック", StoreCookie());

これで落ち着きました

クッキーはファンシーボックスの起動の外側に保存されているので、私はそれがあまり好きではありません

if (!$.cookie('fcookie')) {
    $("#project_info").fancybox({
    onComplete: 関数() {
        ///
    }
    });
    $("#project_info").fancybox().trigger("クリック");
}
$.cookie('fcookie', '1', {パス: ' / '});
于 2012-04-05T16:24:32.893 に答える
0

「onComplete」コールバックには引用符は必要ありません。あなたは簡単に行うことができます:

$("#project_info").fancybox({
  onComplete: function() {
    alert('Completed!');
  }
});
于 2012-04-05T12:55:37.693 に答える