Как объяснено в документации , свойство events
, указанное как функция, будет вызываться fullCalendar всякий раз, когда ему нужны новые данные события.Он будет проходить через 2 даты, которые представляют даты начала и окончания текущего просматриваемого отрезка времени в календаре.Третьим заданным параметром является обратный вызов, который должна вызывать ваша пользовательская функция, когда она создала данные для заданного периода времени, и вы передаете ему сгенерированные данные события.
Когда календарь загружается впервые, ему нужны данныедля любого вида, который он отображает в данный момент.Например, если текущая дата отображается в виде месяца, start
будет первым днем текущего месяца, а end
будет последним днем текущего месяца.Ваша функция должна создать массив данных события (отформатированный, как указано в документации ) для этого диапазона времени и передать его в функцию обратного вызова, которая была задана как параметр 3.
ЕслиКалендарь в настоящее время отображается в месяце и отображает октябрь 2010 года, и пользователь нажимает правую кнопку, сообщая календарю о необходимости перехода к следующему месяцу. Ваша функция будет вызываться с начальным параметром 1 ноября 2010 года и конечным параметром 30 ноября 2010 года.Вы бы сгенерировали данные о событиях за этот период времени и передали их в параметр обратного вызова.
На основании приведенного вами примера (который имеет крайние проблемы с синтаксисом JS), я бы сказал, что вы не хотите использоватьevents
как функция.Скорее, ваш код должен создать правильно отформатированный массив данных событий перед вызовом .fullCalendar()
и передать этот массив как свойство events
.Пример:
/* Assuming you have an array, myArray, which holds data about
* your events, but is not in the format axpected by fullCalendar
*/
var formattedEventData = [],
k;
for (var k = 0; k < myArray.length; k += 1) {
formattedEventData.push({
title: myarray[k][0],
start: myarray[k][1]
});
}
$('#targetElement').fullCalendar({
events: formattedEventData,
color: 'yellow',
textColor: 'black'
});