Открытое событие на 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');
});