如何获取特定月份fullcalendar的事件ID?

时间:2014-05-09 11:56:31

标签: jquery fullcalendar

如何获取特定月份的所有活动ID?

var source = { events: [
                           {
                             title  : val.xxxxName,
                             start  : val.StartDate,
                             end    : val.EndDate,
                             xxxxDetailID : val.xxxxDetailID,
                          }
                ]};

$('#calendar').fullCalendar( 'addEventSource', source );

我有很多活动。我可以使用以下方式获取所有活动:

$('#calendar').fullCalendar('clientEvents');

但我只需要一个月的活动ID。

4 个答案:

答案 0 :(得分:2)

当我查看文档here时,我发现您可以设置自定义过滤器。

这样的事情应该有用......

$('#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;
    };
});

答案 1 :(得分:1)

这可以让你在任何你想要的月份通过。

声明一个枚举数月。

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));

答案 2 :(得分:0)

这是工作jsfiddle,点击下一步和上一页按钮..它会显示特定月份的事件。

.....
....
function getEventsForCurrentMonth(){
  for(var i=0; i< events.length; i++) {
    if (events[i].start.getMonth() == $('#calendar').fullCalendar('getDate').getMonth()) {
       monthEvents.push(events[i].id);             
    } 
   }   
}
 ....

答案 3 :(得分:0)

您可以使用在fullCalendar的loading函数中获取事件的方式。

看看这个例子,

loading: function(){
              var allevents = $('#calendar').fullCalendar('clientEvents');
}

eventAfterAllRender回调中,在循环中获取所需月份的id个事件。