Nick'in cevabını daha esnek bir şekilde kullanan daha kapsamlı bir cevap burada bulunabilir .
Bu konuya ilişkin alaka kodunun bir uyarlaması aşağıdadır. Bu uzantı, esasen, doğru veya yanlışı kabul eden autoReposition adlı yeni bir iletişim kutusu ayarı oluşturur. Kod yazıldığı şekliyle varsayılan olarak true seçeneğini belirler. Sayfalarınızın bundan yararlanabilmesi için bunu projenizdeki bir .js dosyasına koyun.
$.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'));
}
});
});
Bu, sayfanızda iletişim kutunuzu oluştururken bu yeni ayar için "doğru" veya "yanlış" sağlamanıza olanak tanır.
$(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");
}
}
});
});
Şimdi bu iletişim kutusu her zaman kendisini yeniden konumlandıracaktır. Otomatik Yeniden Konumlandırma (veya ayarı ne derseniz deyin), varsayılan konumu olmayan tüm iletişim kutularını işleyebilir ve pencere yeniden boyutlandırıldığında bunları otomatik olarak yeniden konumlandırabilir. İletişim kutusunu oluşturduğunuzda bunu ayarladığınızdan, bir şekilde bir iletişim kutusu belirlemenize gerek yoktur çünkü yeniden konumlandırma işlevi iletişim kutusunun kendisinde yerleşik hale gelir. Ve en iyi yanı, bu her diyalog için ayarlandığından, bazı diyalogların kendilerini yeniden konumlandırmasına ve diğerlerinin olduğu yerde kalmasına sahip olmanızdır.
Tam çözüm için jQuery forumlarında scott.gonzalez kullanıcısına kredi verin.