Я использую диалоговое окно jQuery, содержимое которого имеет переменный размер. Я динамически заполняю содержимое с помощью метода create. Когда диалоговое окно отображается, верхний левый угол диалогового окна располагается в центре экрана, но, поскольку диалоговое окно довольно высокое, его нижняя часть выходит далеко за пределы страницы. Я бы хотел, чтобы он был идеально центрирован независимо от размера диалогового окна. Вот jQuery:
var dialogOptions = {
title: "",
modal: true,
width: 'auto',
autoOpen: false,
create: function () {
$(this).load("/Management/RenderPartialCreateSubject");
}
};
$("#dialog-message").dialog(dialogOptions);
$("#dialog-message").dialog("open");
Единственное, что я могу понять, это то, что содержимое не загружается до позиционирования диалогового окна. Есть ли способ заставить его загружать контент заранее?
Я также попытался загрузить частичное представление прямо в div, а затем открыть диалоговое окно следующим образом:
$.get("/Management/RenderPartialCreateSubject", null, function (data) {
$("#dialog-message").html(data);
});
//open add new subject dialog
var dialogOptions = {
title: "",
modal: true,
width: 'auto',
autoOpen: false
};
$("#dialog-message").dialog(dialogOptions);
$("#dialog-message").dialog("open");
Который в первый раз рендерит неправильно, но работает во второй раз (после загрузки контента).
$("#dialog-message").hide().delay(500).show();
после второго примера или попробуйте добавить.dialog("close").dialog("open")
в конец$("#dialog-message").dialog("open");
. Боюсь, я стараюсь избегать диалогов, поэтому не даю обещаний. - person Christopher Esbrandt   schedule 06.01.2015