9

他の機能の開始を許可または拒否するために、fancybox が開かれていることを知る必要があります。

「onStart」や「onClosed」などの組み込み関数 Fancybox が機能しません。

私はバージョン1.3.0 RC2について話している

4

8 に答える 8

13

$.fancybox.isOpen(ブール値) は、fancybox が開いているかどうかを示します。

于 2014-11-12T15:27:34.433 に答える
10

使用しているバージョンは明らかにドキュメントと一致しません。ソースを調べたところ、オプションの名前がオンライン ドキュメントと異なっていることがわかりました。1.3RC2 で以下をテストしました。

$(document).ready(function() {

    function myStartFunction() { alert('fancy box opened'); }

    $("a#inline").fancybox({
        'onStart': myStartFunction
    });  
});

お探しのオプションは「onStart」です。ボックスを開くたびに、myStartFunction のアラートがオフになります。いつオプションが変更されたのかはわかりませんが、下部にある使用しているバージョンのソースを見て、オプションの名前を確認してください。

編集

v1.2.5(私が使用しているバージョン)を再確認したところ、コールバックの名前が実際に異なります。callbackOnStart は 1.25 で動作しますが、私が言ったように、1.3 では動作しません

于 2010-01-24T23:35:06.767 に答える
8

メソッドを使ってみる

beforeLoad, // Before loading
afterLoad, // After loading
beforeShow, // Before changing in current item
afterShow, // After opening

このコードは正常に動作します

$(".fancybox").fancybox({beforeShow:function(){alert('blah');}});
于 2012-08-12T07:57:39.637 に答える
4

ファンシーボックスが開いているかどうかを判断する方法を探している場合 (ファンシーボックスを開いたときに発生するイベントの代わりに)、fancybox v2 の時点で$.fancybox.isOpenプロパティを使用できます。文書化されていません (少なくとも参考文献は見つかりませんでした) が、動作します。

例:

if(!$.fancybox.isOpen) {
    $.fancybox.open({
        href: '#newsletter-campaign-popup',
        height: 385,
        width: 510,
        type: 'inline'
    });
}

上記の例では、ファンシーボックスが既に開いている場合、2 番目のファンシーボックスが開かないようにしています。

于 2013-06-06T15:38:59.440 に答える
3

組み込み関数の意味がわかりません。Fancybox には、ユーザー定義関数 (自分で作成する必要があります) を呼び出すコールバックがあります。お気に入り:

function myClose()
{
    alert('close');
}

function myStart()
{
    alert('start');
}

$("a#single_image").fancybox({
     'callbackOnClose': myClose,
     'callbackOnStart': myStart
// etc, etc..
}); 

または、div をチェックして、fancy_content内部に何かがあるかどうかを確認することもできます。(ある場合は、fancybox が開いています)。

if ( $('#fancy_content:empty').length > 0 )
{
  // Is empty
}
于 2010-01-24T23:20:34.523 に答える
2

これは私のために働くようです:

        isLoaded : function(){
            return $('#fancybox-content').html()!='';
        }
于 2012-05-31T18:02:17.430 に答える