スクロールバー付きの大きなコンテナがあります。
jquery UI を使用したモーダル ダイアログが、このコンテナーの中央で開きます。
ダイアログが開きますが、何度も閉じて開いた後、上下に移動します(したがって、常に間違った位置になります)。
このスレッドから追加しました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/