1

別のページにリクエストを送信し、ダイアログ ボックスにコンテンツをロードする jqueryUI ダイアログ ボックスがあります。

jQuery("#someDialog").dialog({
    autoOpen: true,
    draggable: false,
    resizable: false,
    modal: true,
    open: function() {
        jQuery(this).load('myurl?type=something');
    }
});​

ただし、このコードはダイアログ ボックスを開くだけで、読み込まれたコンテンツがダイアログ ボックスに表示されないことがあります。これは、open イベント内の非同期コードが原因であると思われます。

これを修正する方法はありますか?

4

1 に答える 1

0

私は通常、コンテンツを変数 div にロードし、開くときにダイアログ ボックスのテキストとして html を配置します。

$('#popupWindow').load('whatever?type=something', function () {

    // using the callback function on .load() we can ensure
    // the content is always loaded before opening the dialog also 

    var _dialogBox = $('<div id="dialogBox" />');

    // put the html inside of the dialog
    _dialogBox.html( $('#popupWindow').html() );


    _dialogBox.dialog({
        autoOpen: true,
        draggable: false,
        resizable: false,
        modal: true
    });​

    _dialogBox.dialog('open');
});
于 2012-11-13T19:33:49.853 に答える