Jawaban yang lebih komprehensif, yang menggunakan jawaban Nick dengan cara yang lebih fleksibel dapat ditemukan di sini .
Adaptasi dari kode relevansi dari utas itu ada di bawah. Ekstensi ini pada dasarnya membuat setelan dialog baru yang disebut autoReposition yang menerima benar atau salah. Kode sebagai default tertulis pilihan true. Masukkan ini ke dalam file .js dalam proyek Anda sehingga halaman Anda dapat memanfaatkannya.
$.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'));
}
});
});
Ini memungkinkan Anda untuk memberikan "benar" atau "salah" untuk pengaturan baru ini saat Anda membuat dialog di halaman Anda.
$(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");
}
}
});
});
Sekarang dialog ini akan selalu mengubah posisinya sendiri. AutoReposition (atau apa pun yang Anda sebut pengaturan) dapat menangani dialog apa pun yang tidak memiliki posisi default dan secara otomatis mengubah posisinya saat jendela diubah ukurannya. Karena Anda menyetel ini saat membuat dialog, Anda tidak perlu mengidentifikasi dialog karena fungsionalitas pemosisian ulang sudah ada di dalam dialog itu sendiri. Dan bagian terbaiknya adalah karena ini diatur per dialog, Anda dapat membuat beberapa dialog mengubah posisinya sendiri dan yang lain tetap di tempatnya.
Penghargaan untuk pengguna scott.gonzalez di forum jQuery untuk solusi lengkapnya.