Я использую встроенный указатель даты, выделяя даты, в которых есть события. Каждый раз, когда меняется месяц, он должен загружать новые события с сервера. Проблема в том, что onChangeMonthYear срабатывает только в месяцы, отличные от текущего месяца. Например, если август, он срабатывает во все предыдущие месяцы (июль, июнь, май ...) и все последующие месяцы (сентябрь, октябрь ...), но не тогда, когда я возвращаюсь в август Это мой код:
function highlightDates(date) {
for ( var i = 0; i < agenda.length; i++) {
var start = agenda[i].start.toShortDate();
var end = agenda[i].end.toShortDate();
if (start >= date && end <= date) {
return [ true, 'dateHasEvent' ];
}
}
return [ true, '' ];
}
Date.prototype.toShortDate = function() {
var date = new Date(this.getFullYear(), this.getMonth(), this.getDate());
return date;
};
function monthChanged(year, month, instance) {
var date = new Date(year, month - 1);
$.getJSON('json.do', {
time : date.getTime()
}, updateCalendars);
}
function updateCalendars(data, status) {
agenda = data;
$('#calendar').datepicker('refresh');
}
var agenda = [];
$(function() {
$('#calendar').datepicker( {
beforeShowDay : highlightDates,
onChangeMonthYear : monthChanged,
changeMonth : false,
changeYear : false,
showButtonPanel : false
});
});
Кто-нибудь знает, является ли это ошибкой или ожидаемым поведением?