我目前正在尝试更改jQuery UI日期选择器内特定日期的CSS。如果日期被视为假期(即它与给定日期数组中的日期相匹配),我想要移除默认图像并对该给定元素添加一些小调整。我使用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, ''];
}
从理论上说,应用类,每个节日的TDS应该让我在日期选择器中为每个假期指定我想要的任何样式。然而,我没有在课堂上使用过的造型。 UI样式优先。 我当然可以通过从UI css文件中删除css样式来解决问题,但从设计的角度来看,这是一个非常糟糕的方法。下面是我指定的CSS(指定重要的没有任何改变!):
td.holiday {
background-color: #CC9900;
background-image: none;
color: #990000;
font-weight: bolder;
}
我试图通过应用CSS作为内嵌样式的日期选择器所产生的TD节点中的一个节点,以“破解它”(更具体的,更内在的规则应该具有更高的优先级CSS),做这样的事情:
onChangeMonthYear: function(dateText, inst) {
$('.holiday').children('a').css({'background-color': 'blue', 'background-image': 'none',
color: '#990000', 'font-weight': 'bolder'});
}
似乎显示的日期选择器前onChangeMonthYear将运行该功能。而且,由于发生这种情况,日期选择器的CSS会覆盖我正在尝试执行的操作。如果我只是在打开日期选择器的情况下在Firebug中运行这段代码,那么它可以很好地工作。
是否有无论如何使用.css()在显示月份后更改日期选择器的css?我想避免尝试更改jQuery UI css或js文件。即使如此,这似乎是一个糟糕的设计。任何其他想法?
马修,你说得对,当你说使用!很重要。我之前尝试过,但我使用td.holiday作为我的选择器。相反,我应该使用td.holiday a。 谢谢 – 2012-03-14 13:29:49