JQuery UI Dialog autoResize не работает в Chrome - PullRequest
2 голосов
/ 14 декабря 2011

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

Вот мой код:

    $("#my_dialog").dialog({
        modal:true,
        autoResize: true,
        open:function(){
            $(this).parents(".ui-dialog:first").find(".ui-widget-header")
            .removeClass("ui-widget-header").addClass("ui-widget-header-ia");
        }
    });

, но при загрузке содержимого AJAX размер диалогового окна не меняется, и вместо него появляется полоса прокрутки.

Проблемав том, что тестирование этого же кода без опции autoResize в IE6 работает нормально !!

Так что я думаю, может быть, потому что Google Chrome не поддерживает эту опцию.

Можете ли вы помочь мне, пожалуйста?Большое спасибо за ваше время.

Ответы [ 3 ]

2 голосов
/ 18 декабря 2011

У меня была точно такая же проблема: один пользователь всегда открывал диалоговое окно как слишком низкое, а высота не обновлялась, даже если содержимое обновлялось. Сначала я не мог воспроизвести проблему, пробовал с несколькими версиями, ОС и т. Д. Затем я наткнулся на это:

http://hustoknow.blogspot.com/2010/10/chrome-and-jquery-ui-min-height-issue.html

Похоже, что уровень масштабирования вызвал проблему, по крайней мере, в моем случае. Если я загрузил исходную страницу с масштабом по умолчанию (нажмите Ctrl + 0 в Chrome), диалоговое окно откроется в порядке. Затем я закрыл диалоговое окно, нажал Ctrl + - (Chrome Zoom out), перезагрузил страницу с помощью F5 , снова открыл диалоговое окно, и проблема возникала каждый раз. Перезагрузка кажется обязательной, если я загрузил исходную страницу с масштабом по умолчанию и уменьшил масштаб, тогда диалоги знали свою высоту. Очевидно, проверка минимальной высоты, описанная в ссылке, выполняется при загрузке исходной страницы.

Я еще не нашел обходного пути, кроме как уменьшить масштаб, но это может быть и причиной вашей проблемы.

1 голос
/ 05 мая 2012

Я обнаружил, что jQuery UI явно устанавливает высоту элемента при создании / открытии диалога.Поэтому полезным обходным путем является просто сброс атрибута css height элемента после открытия следующим образом:

  element.dialog('open');
  element.css('height', '');
0 голосов
/ 14 декабря 2011

Если мы не знаем, какой объем контента мы собираемся отображать, лучше использовать параметр изменяемого размера для диалогового окна jquery ui modla. Вы также можете попробовать плагин автоматического изменения размера

...