Посмотрите на эту страницу . Само средство выбора даты (вызываемое на <div id="calendar">) изначально имеет ширину 68em. Затем я использую $("#calendar").children().css("width","auto");, чтобы установить ширину на авто (чтобы она заполняла страницу). Как видите, это работает. Однако изменение месяца (с помощью кнопок) приводит к тому, что jQuery меняет ширину обратно. Есть ли правильный способ исправить это?
<div id="calendar">
$("#calendar").children().css("width","auto");
Быстрое и грязное решение состоит в том, чтобы использовать ! important для перезаписи стилей, установленных для элемента:
! important
#calendar .ui-datepicker-inline { width: auto ! important }
Это не красиво, но это работа сделана без особых хлопот.
Вы можете установить фиксированное значение ширины, используя только CSS.
Если вы хотите использовать Javascript для установки ширины #calendar, вам следует подключить функцию изменения размера JS к событию onChangeMonthYear.
С сайта jQuery UI :
$('.selector').datepicker({ onChangeMonthYear: function(year, month, inst) { ... } });