私は、beforeShowDay
のhighlightday
関数を呼び出すJQuery UI Datepickerウィジェットを持っています。この関数は、日付とハイライトする日付のリストを取ります。日付がリストにあれば、それは "イベント"クラスになります。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月にdatepickerが開始されると、fetchdates
関数は5月のイベントで日付を要求し、それはvar dates
に割り当てられます。
問題は、ユーザーが別の月を選択した場合です。私は単に
function changemonth(year, month) {
this.dates = fetchdates(this.id, year + "-" + month);
}
dates
変数が正しく更新されているchangemonth
機能を呼び出すためにonChangeMonthYear
を設定しているが、beforeShowDay
はすでにhighlightday
と呼ばれるので、新しい日付が強調表示されません。 refresh()
は何もしません。