Диалоговое окно jQuery сжимается, когда я открываю второй раз

У меня есть div (скажем, div1), который содержит два раскрывающихся списка и форму, в которой есть еще один div (скажем, div2). я определил этот div1 как диалог jquery. При изменении 1-го раскрывающегося списка будет заполнено другое раскрывающееся меню, а при изменении 2-го раскрывающегося списка div2 будет загружен с html-результатом вызова ajax.

Теперь я закрываю диалоговое окно с помощью кнопки закрытия, а затем, когда я пытаюсь снова открыть диалоговое окно (div1), высота диалогового окна уменьшается ниже указанной высоты. Если я открываю диалоговое окно без изменения второго раскрывающегося списка, он работает нормально. Только когда onchange происходит во втором раскрывающемся списке, диалоговое окно сжимается.

Диалог jQuery Открыть div1:

    $("#fileDoc").dialog({
    bgiframe: true,     
        autoOpen: false,
        height: 680,
        width: 800,
        modal: true,
        resizable: false
});

Диалоговое окно jQuery закрыть div1:

$('#fileDoc').dialog('close');

Вызов jQuery ajax загружает html в div2:

$("#doc").html(data);

я использую jQuery 1.4.4 и пользовательский интерфейс 1.8.2.


person Karthik    schedule 22.03.2011    source источник


Ответы (2)


При закрытии убедитесь, что вы уничтожаете диалоговое окно .dialog( "destroy" ), иначе диалоговое окно и его содержимое останутся скрытыми в DOM. Это может создать проблему, поскольку идентификаторы уникальны, и у вас может быть открыт только один экземпляр одного и того же #id.

person Hussein    schedule 22.03.2011

я нашел проблему. div2 должен быть пустым перед закрытием диалогового окна div1, в противном случае высота div2 также берется и вычитается из высоты диалогового окна и, следовательно, уменьшает высоту в диалоговом окне пользовательского интерфейса jQuery 1.8.2.

Итак, диалоговое окно jQuery закрывает div1:

$("#div2").html(""); $("#fileDoc").dialog("close");
person Karthik    schedule 22.03.2011
comment
Мой герой ;). Я потерял несколько часов из-за этого. Мне пришлось скрыть и показать jqgrid, чтобы решить мою проблему, но этот ответ помог мне встать на правильный путь. - person elrado; 20.08.2014