Aquí puede encontrar una respuesta más completa, que utiliza la respuesta de Nick de una manera más flexible .
A continuación se muestra una adaptación del código de relevancia de ese hilo. Esta extensión esencialmente crea una nueva configuración de diálogo llamada autoReposition que acepta verdadero o falso. El código tal como está escrito establece la opción por defecto en verdadero. Pon esto en un archivo .js en tu proyecto para que tus páginas puedan aprovecharlo.
$.ui.dialog.prototype.options.autoReposition = true;
$(window).resize(function () {
$(".ui-dialog-content:visible").each(function () {
if ($(this).dialog('option', 'autoReposition')) {
$(this).dialog('option', 'position', $(this).dialog('option', 'position'));
}
});
});
Esto le permite proporcionar un "verdadero" o "falso" para esta nueva configuración cuando crea su diálogo en su página.
$(function() {
$('#divModalDialog').dialog({
autoOpen: false,
modal: true,
draggable: false,
resizable: false,
width: 435,
height: 200,
dialogClass: "loadingDialog",
autoReposition: true, //This is the new autoReposition setting
buttons: {
"Ok": function() {
$(this).dialog("close");
}
}
});
});
Ahora, este diálogo siempre se reposicionará. AutoReposition (o como se llame a la configuración) puede manejar cualquier cuadro de diálogo que no tenga una posición predeterminada y reposicionarlos automáticamente cuando la ventana cambia de tamaño. Dado que está configurando esto cuando crea el diálogo, no necesita identificar un diálogo de alguna manera porque la funcionalidad de reposicionamiento se integra en el diálogo mismo. Y la mejor parte es que, dado que esto se establece por diálogo, puede hacer que algunos diálogos se reposicionen y otros permanezcan donde están.
Crédito al usuario scott.gonzalez en los foros de jQuery por la solución completa.