У меня есть большой контейнер с полосами прокрутки.
В середине этого контейнера откроется модальное диалоговое окно с пользовательским интерфейсом jquery.
Диалог открывается, но после закрытия и открытия снова и снова он двигается вверх или вниз (поэтому всегда занимает неправильную позицию).
Я добавил из этой темы Can JQuery UI Диалог запоминает свою позицию между открытием и закрытием следующей части:
beforeclose: function(){
$(this).dialog('option', 'position', [$(this).offset().left, $(this).offset().top]);
}
Если я удалю эту часть, диалоговое окно откроется после перетаскивания/перемещения всегда поверху страницы.
Кроме того, если диалог открывается внизу, движения становятся еще более безумными.
Мой код:
$("#btnTest").click(function(){
if ($("#exec").length == 0) {
$('body').append('<div id="exec" style="width:320px;background-color: #000;display:none;">xxx</div>');
$("#exec").dialog({
width: 320,
modal: true,
position: "center",
show: { effect: "slide", direction: "up", duration: 400 },
hide: { effect: "slide", direction: "up", duration: 400 }
});
} else {
$("#exec").dialog("open");
}
});
$("#btnClose").click(function(){
$("#exec").dialog('close');
});
Проверьте это @ jsfiddle: http://jsfiddle.net/EDkk6/4/< /а>