我目前正在嘗試更改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