我有一个JQuery UI Datepicker小部件,带有一个调用highlightday
函数的beforeShowDay
。该函数采用日期和要突出显示的日期列表。如果日期在列表中,则为其提供"事件"类。
function highlightday(date, highdates) {
for (var i = 0; i < highdates.length; i++) {
if ($.datepicker.formatDate("yy-mm-dd", date) === highdates[i]) {
return [true, 'event'];
}
}
return [true, ''];
}
这工作正常。"事件"日期已正确标记。
但是,日期列表是从服务器获取的,并且仅针对所选月份。因此,如果日期选取器在 5 月开始,则 fetchdates
函数请求 5 月有事件的日期,并将其分配给var dates
。
问题是当用户选择不同的月份时。我onChangeMonthYear
设置调用changemonth
函数,它很简单
function changemonth(year, month) {
this.dates = fetchdates(this.id, year + "-" + month);
}
dates
变量已正确更新,但新日期未突出显示,因为beforeShowDay
已调用highlightday
。 refresh()
什么都不做。
这是我的一个错误。 dates
未正确更新。