如何获得特定月份完整日历的事件id



如何获取特定月份的所有事件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

相关内容

  • 没有找到相关文章

最新更新