#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 для принудительной прокрутки, если содержимое превышает область просмотра. Или, если вы хотите вручную задать высоту и ширину, вы тоже можете это сделать, как в моем ответе.