$.dialogue () динамическое изменение размера

#jquery #jquery-ui #jquery-ui-dialog

#jquery #jquery-пользовательский интерфейс #jquery-пользовательский интерфейс-dialog

Вопрос:

Возможно ли, чтобы .dialog расширялся, чтобы соответствовать содержимому? Я знаю, что могу задать свойства width, height. У меня есть таблица, в которой будет N строк. Я хочу, чтобы в диалоговом окне отображалась вся таблица. Полоса прокрутки отображается только тогда, когда размер таблицы превышает размер окна браузера.

Возможно ли это?

Ответ №1:

Проблем быть не должно. Сначала вычислите высоту окна просмотра. Затем присвоите высоту dialog -свойству. Как-то так:

 var windowHeight = $(window).height();
$('.myTable').dialog({'height': windowHeight});
// or use the maxHeight-property...
  

Ответ №2:

Не могли бы вы указать «auto» в качестве значения для свойства height? Из документов:

Высота диалогового окна в пикселях. Также поддерживается указание ‘auto’ для настройки диалогового окна в зависимости от его содержимого.

Ответ №3:

плюс к ответу faileN, если вы хотите отобразить всю таблицу из-за размера окна, вы можете установить для ее высоты значение widow size.

 var wHeight= $(window).height();
var wWidth = $(window).width();

$('.myTable).dialog({'height': wHeight, 'width':wWidth });
  

Ответ №4:

Сделайте что-то вроде:

 var $table = $("#tableId"),
    $window = $(window);

$table.dialog({

    // other properties set here ...

    maxHeight: $window.height() - 50,
    maxWidth: $window.width() - 50,
    height: $table.outerHeight(true)   50,
    width: $table.outerWidth(true)   50

});

// I always give some room, hence the 50
  

Комментарии:

1. Вы можете поступить так, как сказал Ганни, и оставить высоту и ширину в покое, поскольку они установлены на 'auto' , а затем вы можете установить свойства maxHeight и MaxWidth для принудительной прокрутки, если содержимое превышает область просмотра. Или, если вы хотите вручную задать высоту и ширину, вы тоже можете это сделать, как в моем ответе.