Получить высоту и ширину jQuery UI Datepicker - PullRequest
1 голос
/ 03 октября 2011

Я использую виджет DatePicker пользовательского интерфейса jQuery.Когда пользователь меняет месяц или год в виджете, мой код делает ajax-запрос к серверу, чтобы получить выделенные даты для этого месяца / года.Чтобы дать пользователю указание на то, что веб-страница ожидает сервера, я пытаюсь выделить программу выбора даты серым цветом и отобразить загрузочное изображение.Я уже могу сделать все это, за исключением того, что у меня возникают проблемы с получением высоты и ширины серого раздела, чтобы соответствовать высоте и ширине виджета DatePicker.количество недель в месяце, каждый раз, когда я вызывал оверлей, я пытался использовать jQuery, чтобы получить высоту виджета, а затем отобразить оверлей.Однако высота никогда не совпадает с фактической высотой указателя даты.Вот два способа, которыми я пытался установить высоту.

$('#loading').height($('.ui-datepicker-calendar').height() + $('.ui-datepicker-header').height())

и

$('#loading').height($('.ui-datepicker-inline.ui-datepicker.ui-widget.ui-widget-content.ui-helper-clearfix.ui-corner-all').height())

Ни один из этих способов не работает.Кто-нибудь знает, как я могу программно получить высоту и ширину виджета DatePicker пользовательского интерфейса jQuery?

Ответы [ 2 ]

3 голосов
/ 03 октября 2011

Это длинный выстрел, так как я не могу точно сказать, что вы подразумеваете под the height never seems to match the actual height, за исключением того, что он не охватывает весь сборщик дат.Решением этого может быть outerWidth() и outerHeight().Эти функции получают ширину элемента , включая border, padding и (необязательно) поля:

$('#loading').height($('.ui-datepicker-calendar').outerHeight(false) + $('.ui-datepicker-header').outerHeight(false))

$('#loading').height($('.ui-datepicker-inline.ui-datepicker.ui-widget.ui-widget-content.ui-helper-clearfix.ui-corner-all').outerHeight(false))

outerHeight(false) означает «получить высоту плюс отступы и рамку, но не указыватьполе".Установите его на true, если вы хотите включить поле тоже.

1 голос
/ 03 октября 2011

height() работает нормально, проблема была в том, что кто-то еще отредактировал файл и добавил заполнение без моего ведома. Поэтому, когда я устанавливал высоту, к нему всегда добавлялась куча дополнительных пикселей, что делало мое наложение слишком большим для виджета DatePicker. Кроме того, достаточно выбрать .ui-datepicker-inline. Итак, мой окончательный код jQuery:

$('#loading').height($('.ui-datepicker-inline').height());
...