Похоже, что диалоговый виджет пытается сохранить диалог видимым и переопределяет настройку position
в процессе.Вы можете использовать событие open
, чтобы вызвать проблему.Структура диалога (без ненужных классов и тому подобного) выглядит следующим образом:
<div class="ui-dialog">
<div class="ui-dialog-titlebar"></div>
<div id="red"></div>
</div>
, поэтому вы можете использовать обработчик open
следующим образом:
open: function(event, ui) {
var $dialog = $(event.target);
var position = $dialog.dialog('option', 'position');
$dialog.closest('.ui-dialog').css({
left: position[0],
top: position[1]
});
}
Да, это такнемного глупо, но это работает, и я не вижу в API ничего, что позволяло бы контролировать поведение диалога, когда оно не помещается в видимую область.
Демо: http://jsfiddle.net/ambiguous/L9Deb/