3

fancyboxが機能する特別な理由はありますか

$.fancybox.showActivity();

スクリプトでエラーがスローされますか?関数を呼び出す必要がある特定の順序はありますか?この関数は、コンテンツがポップアップにロードされる前に、ロード中の画像を表示することを目的としています。これが私のコードです:

$(".info_button").click(function () {

    var pictid_browse = $(this).parent().find('#pictid').val();
    $.fancybox.showActivity();
    $.ajax({
                url: "ajax.html",
                type: "POST",
                async:false,
                data: ({f:"get_info",pictid:pictid_browse}),
                success: function(data){
    $.fancybox({
                    'autoDimensions'    : false,
                'width'                 : 950,
                'height'                : 'auto',
                'transitionIn'      : 'none',
                'transitionOut'     : 'none'
            });
                $.fancybox({content:data,'autoDimensions':true,'scrolling':'no',});


    }
    });

    return false;
    });

私が得ているエラーは次のとおりです。

Uncaught TypeError: Object function () {
        F.open.apply( this, arguments );
    } has no method 'showActivity'

また

TypeError: 'undefined' is not a function (evaluating '$.fancybox.showActivity()')

Fancyboxバージョン:2.1.3

アップデート:

何が起こっているのかわかりませんが、

$.fancybox.showLoading();

の外

$(".info_button").click(function () {

次に、起動してアニメーションを表示します。しかし、クラス'.info_button'のアイテムをクリックすると、それが発生する必要があります

次の解決策も問題を解決していないようです。

    $(".info_button").bind('click', function (e) {
  e.stopPropagation(); e.preventDefault();
}

調査によると、次のコードが削除されると読み込みがトリガーされます。

 $.fancybox({
content:data,
                'autoDimensions'    : true,
            'width'                 : 'auto',
            'height'                : 'auto',
            'transitionIn'      : 'none',
            'transitionOut'     : 'none',
            'scrolling':'no'
        });

これは、ファンシーボックスがajax関数内に含まれていると正常に機能しないことを意味する場合がありますが、理由は-私には手がかりがありません

4

3 に答える 3

3

fancybox.netのapidockは少し時代遅れです(1.xy用)。

したがって、使用する場合:

  • あなたが行きたい古い1.xy: $.fancybox.showActivity();
  • あなたが行きたい新しい2.xy: $.fancybox.showLoading();

2.xyfancyapss.comのドキュメントなどのドキュメントを見つけることができます。彼らは「2つのバージョン(1.xと2.x)のライセンススキームが異なるため」(@ JFKへのthx)、サイトを維持しています。あなたはそれを報告することができます、mbあなたは彼らから金の星を手に入れます:)

=========質問の更新後の回答==========

完全なhtmlとjsを確認せずに確認することはできませんが、次のことを試すことができます。

$(".info_button").bind('click', function (e) {
  e.stopPropagation(); e.preventDefault();
}
于 2012-11-10T19:13:36.963 に答える
1

あなたはこれを行うことができます

    <style>
     #fancybox-loading{z-index:999999999;}
    </style>



     <script>
                       $.fancybox({
                                'href'          :your_url,  
                                'width'         : 900,
                                'height'        : 600,
                                'scrolling' : 'auto',
                                'type'              : 'iframe',
                                'titleShow'     : false,
                                'onComplete' : function() {
                                    $.fancybox.showActivity();
                                    $('#fancybox-frame').load(function() {
                                        $.fancybox.hideActivity();
                                    });
                                }
                        })
</script>
于 2017-07-22T04:30:19.207 に答える
0

問題は、doublefancyboxの呼び出しにあるようです。以下の作業コード:

    $('.info_button').bind('click', function() {
    var pictid_browse = $(this).parent().find('#pictid').val();
    $.fancybox.showLoading();
    $.ajax({
        type:"POST",
        cache:false,
        url:"ajax.html",
        data:({f:"get_info",pictid:pictid_browse}),
        success: function(data) {
            $.fancybox({content:data,'autoDimensions':true,'scrolling':'no'});
        }
    });
    return false;
});
于 2012-11-10T23:06:22.770 に答える