Открытое событие на jqueryUI работает с перебоями

У меня есть диалоговое окно jqueryUI, которое делает запрос на другую страницу и загружает содержимое в диалоговом окне.

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

Однако этот код иногда просто открывает диалоговое окно, и загруженное содержимое не отображается в диалоговом окне. Я подозреваю, что это из-за асинхронного кода внутри события open.

Есть ли способ это исправить?

1 ответ

Обычно я загружаю содержимое в переменную div, а затем помещаю его в качестве текста для диалогового окна при его открытии.

$('#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');
});
Другие вопросы по тегам