Не похоже, что открытие диалогового окна таблицы без учета параметра высоты во время инициализации было бы умышленно. Мой опыт показывает, что компоненты пользовательского интерфейса jQuery ведут себя наиболее согласованно, как <div>
элементы, и похоже, что вы нашли тот же результат, но, как вы сказали, это не должно быть требованием.
Значением по умолчанию для параметра высоты в dialog () является auto
, которое должно масштабировать диалоговое окно, чтобы соответствовать элементу. Возможно, есть ошибка, когда элемент table
передается в dialog()
, в результате чего auto
переопределяет параметры высоты в init. Я попытался изменить значение ширины в вашем первом примере, и dialog()
правильно отвечает, изменяя ширину, но высота не сдвигается. Я также переупорядочил параметры, чтобы высота была первой, но это также не имело эффекта.
JS Bin не работает для меня, поэтому я переместил ваш код в эту скрипку и сжал вызов диалога init. https://jsfiddle.net/z601hhjd/
// Open dialog and set height and width on init
// Width option works at initialization but height does not
$(".shortTable").dialog({
'height':'300',
'width':'500',
open: function(event, ui) {
// Height setter has no effect after init either
$(this).dialog("option", "height", 200 );
// Width setter works after initialization too
$(this).dialog("option", "width", 200 );
}
});
Похоже, что в jQuery UI есть ошибка для установки высоты для table
элементов, которая конфликтует с документацией , но эта функциональность соответствует спецификациям HTML, как сказал @Peri.