0

ajax jQuery .load() 関数でロードされたコンテンツを入力するモーダル ボックスがあります。主な問題は、画像、テキストなどの ajax コンテンツが非表示のモーダル内に完全に読み込まれた後にのみ、別の関数を実行できないことです。

例: 次のように、幅と高さに応じてモーダル ボックスを中央に配置する必要があります。

    var modalbox = $('.modalbox');

        function centermodal(a){                    

            overlayWidth = a.width(),
            overlayHeight = a.height();

            a.css({                     
                'margin-top':'-'+overlayHeight/2+'px',
                'margin-left':'-'+overlayWidth/2+'px'
            }); 

            a.show(); //show the box                    

        }

次に、ロード内でこの関数を実行しますが、モーダルに画像や余分なコンテンツが含まれている場合、モーダルの正しい高さを計算しません。

modalbox.load('page1.html','',function(){
    centermodal(modalbox);
});

ある種のローダーを作成するか、表示する前にロードされたコンテンツをチェックする必要があると思います。多分誰かが解決策を提案できますか?

ありがとうございました。

4

1 に答える 1

0

jQuery Deferredオブジェクトは、このジョブのツールです。AJAX 呼び出しが完了したときに関数を呼び出すには、 deferred.done()関数を使用します。

于 2013-10-02T15:38:39.530 に答える