В настоящее время я пытаюсь изменить css определенных дат внутри jQuery UI datepicker. Если дата считается праздником (т. Е. Она соответствует дате в заданном массиве дат), я хотел бы удалить изображение по умолчанию и добавить некоторые небольшие настройки к данному элементу. Добавить класс «праздник» с датами считаются праздниками, используя функцию обратного вызова beforeShowDay как так (выходные отмечены классом выходного):JQuery UI - Datepicker onChangeMonthYear
beforeShowDay: function(oDate) {
mResult = oHolidays.fnLookupDate(oDate);
if (mResult != null) // if the date matched a holiday, mResult is the description
return [false, 'holiday', mResult];
else if (oDate.getDay() == 0 || oDate.getDay() == 6) // weekends
return [false, 'weekend'];
else // normal day
return [true, ''];
}
Теоретически, применяя класс к с.в. каждого праздника должен позволить мне указать любой стиль, который я хочу для каждого праздника в datepicker. Тем не менее, ни один из стилей, которые я использую в классе, на самом деле не появляется; стиль UI имеет приоритет. Я мог бы, конечно, решить проблему, удалив стили css из файла css UI, но это очень плохой подход с точки зрения дизайна. Вот CSS Уточняю (с указанием важно ничего не изменится!):
td.holiday {
background-color: #CC9900;
background-image: none;
color: #990000;
font-weight: bolder;
}
Я пытался «взломать его» путем применения CSS в качестве встроенного стиля к узлам в пределах Td узлов, порожденных DatePicker (более конкретно, более внутренние правила должны иметь более высокий приоритет CSS) и сделать что-то вроде этого:
onChangeMonthYear: function(dateText, inst) {
$('.holiday').children('a').css({'background-color': 'blue', 'background-image': 'none',
color: '#990000', 'font-weight': 'bolder'});
}
кажется, что onChangeMonthYear будет запускать эту функцию перед отображением DatePicker. И так как это происходит, css datepicker переопределяет то, что я пытался сделать. Если я просто запускаю этот бит кода в Firebug с открытым датпиккером, он отлично работает.
Можно ли использовать .css() для изменения css datepicker после отображения месяца? Я хочу избежать попытки изменить jQuery UI css или js-файлы. Тем не менее, это кажется плохим дизайном. Любые другие идеи?
Мэтью, вы были правы, когда говорили, что используете! Важно. Я пробовал это раньше, но я использовал td.holiday как мой селектор. Вместо этого я должен был использовать td.holiday a. Спасибо –