我喜欢在日期选择器中更改日期的可点击状态。因此我使用 beforeShowDay:
$('#datepicker').datepicker({
inline: true,
beforeShowDay: function(date){
var dateTime = parseInt(date.getTime()/1000);
if (isWeekend(date)){
return [false,''];
}
var m = date.getMonth(), d = date.getDate(), y = date.getFullYear();
var specialDates = getSpecialSet(y,m);
for (i = 0; i < specialDates.length; i++) {
if($.inArray((m+1) + '-' + d + '-' + y,specialDates) != -1 || new Date() > date) {
console.log('HL: '+(m+1) + '-' + d + '-' + y);
return [true,'highlight1','Almost sold out'];
}
}
return [true,'normal']; // ordinary day
},
onSelect: function(dateText, inst) {
var d = new Date(dateText);
cal_gotoDate(d);
}
});
我通过函数加载我的specialDatesgetSpecialSet(y,m)
。此函数将针对当前月份的每个日期运行。因为我的 specialDates 集非常大:未来 20 年有 specialDates。我喜欢仅在当月通过 ajax 加载特殊集。
但我需要一个在月份更改后调用的函数,以通过 ajax 预加载我的 specialDates。
但我没有在 api 中找到任何有用的功能。