Я пытаюсь реализовать следующее: по умолчанию (при запуске страницы) я заполняю список событий массивом. После этого, если пользователь хочет изменить месяц или год, я хочу получить события через вызов AJAX и повторно заполнить свойство events полного календарного списка.
Вот код инициализации:
function initializeCalendar(year, month, events) {
$('#orders-calendar').fullCalendar({
header: {
left: 'prev,next',
center: 'title',
right: ''
},
firstDay: 1,
year: year,
month: month,
events: events,
eventClick: function(event) {
History.pushState({id: event.id}, null, '?id=' + event.id);
return false;
}
});
};
Как я могу назначить событие onchange
после инициализации? Что-то вроде:
$('#orders-calendar').on('change', function(date) { ... });
Заранее спасибо!
Я не знаком с fullcalendar, но в документации не раскрывается такое событие.
Но вместо передачи массива в параметр events
вы должны определить функцию, которая будет выполнять ваши вызовы ajax и возвращать ваши события календаря.
Параметр events
действительно принимает function( start, end, callback ) { }
как описано в документации, или если ваш вызов сервера возвращает json, вы можете просто определить URL-адрес канала, как описано здесь
EDIT:
Следующие функции: prev()
, next()
, prevYear()
, nextYear()
, today()
, gotoDate(...)
, incrementDate(...)
все делают вызов renderView(inc)
который сам внутренне вызывает _renderView(inc)
которые вызывают событие viewRender
.
Если это не соответствует вашему требованию, посмотрите в исходном коде, чтобы проверить, подняты ли какие-либо события, когда вам нужно. Но я бы не стал полагаться на недокументированные события. Недокументированные события могут измениться, чтобы запретить запуск вашего приложения после обновления плагина.