如何获取特定月份的所有事件id ?
var source = { events: [
{
title : val.xxxxName,
start : val.StartDate,
end : val.EndDate,
xxxxDetailID : val.xxxxDetailID,
}
]};
$('#calendar').fullCalendar( 'addEventSource', source );
我这个月有很多活动。我可以通过使用
获得所有事件:$('#calendar').fullCalendar('clientEvents');
但是我只需要一个月的事件id。
当我查看这里的文档时,我看到您可以设置自定义过滤器。
像这样的东西应该可以工作…
$('#calendar').fullCalendar('clientEvents',function(event){
/*Gets the events of the current month in an array*/
if (event.start.getMonth() == $('#calendar').fullCalendar('getDate').getMonth()) {
return true;
}
else {
return false;
};
});
这应该可以让您通过任何您想要的月份。
声明一个月的Enum。
var Months = { January: 0, February: 1, March: 2, ... };
通过你想要的月份
var desiredMonth = Months.January;
function getEventsForMonth(desiredMonth) {
var result = new Array();
for(var i = 0; i < source.events.length; i++) {
if(source.events[i].getMonth() == desiredMonth ) {
result.push(source.events[i]);
}
}
return result;
}
$('#calendar').fullCalendar('clientEvents', getEventsForMonth(desiredMonth));
这里是工作的jsfiddle,点击下一步和previous按钮。它将显示特定月份的事件。
.....
....
function getEventsForCurrentMonth(){
for(var i=0; i< events.length; i++) {
if (events[i].start.getMonth() == $('#calendar').fullCalendar('getDate').getMonth()) {
monthEvents.push(events[i].id);
}
}
}
....
您可以在fullCalendar的loading
函数中使用您的方式获取事件。
看这个例子,
loading: function(){
var allevents = $('#calendar').fullCalendar('clientEvents');
}
在eventAfterAllRender
回调中,在循环中获取所需月份的事件的id