Может ли JQuery UI Dialog запомнить свою позицию между открытием и закрытием - PullRequest
2 голосов
/ 13 июня 2009

У меня есть диалоговое окно JQuery, которое я динамически открываю и закрываю. Все работает нормально, за исключением того, что положение диалогового окна не запоминается после его закрытия и повторного открытия.

Размер сохраняется, но позиция - нет.

Я попытался подключиться к событию 'Open', но похоже, что позиция сбрасывается пользовательским интерфейсом JQuery после того, как я вручную переставил элемент.

Возможно ли сохранить размер диалога? Я, конечно, думаю, что так и должно быть.

Ответы [ 3 ]

8 голосов
/ 13 июня 2009

Вы можете использовать событие «beforeclose» диалогового окна jQuery UI для сохранения позиции и размера. Вы можете установить положение и размер, используя метод "option".

Вот что у меня сейчас работает:

$(function() {
    $("#dialog").dialog({
        beforeclose: function(){
            $(this).dialog('option', 'position', [$(this).offset().left, $(this).offset().top]);
            $(this).dialog('option', 'width', $(this).width());
            $(this).dialog('option', 'height', $(this).height());
        }
    });
});

$ ( '# диалоговые'). Диалоговые ( 'открытый')

1 голос
/ 22 сентября 2009

Вы можете переопределить стандартный метод close, возвращая false в beforeclose и используя jquery, чтобы скрыть диалоговое окно:

$.ui.dialog.defaults.beforeclose = function() {
    $(this).closest('.ui-dialog').hide();
    return false;
};

и снова открыть:

$('#list').closest('.ui-dialog').show();
0 голосов
/ 04 августа 2009

Посмотрите на jquery changeset . Вы также найдете исправление для этого

...