2016-05-22 42 views
0

私は、beforeShowDayhighlightday関数を呼び出す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()は何もしません。

答えて

0

これは私の間違いでした。 datesが正しく更新されていませんでした。

関連する問題