在agendaWeek视图中的fullcalendar.sj limitEvents

时间:2014-12-22 07:52:44

标签: fullcalendar

我试图找到一种方法来限制周视图中的非全天事件。根据文档,我应该使用fallowing选项:

$('#calendar').fullCalendar({
    eventLimit: {
        'agenda': 6, // adjust to 6 only for agendaWeek/agendaDay
        'default': true // give the default value to other views
    }
});
不幸的是,

仅适用于周视图中的所有日间活动。

如果公司有很多重叠事件,周视图就没用了,因为它看起来像是:

Image

1 个答案:

答案 0 :(得分:1)

不幸的是,fullCalendar正在运行,因为它会限制特定日期的事件,而不是时间段。

您可能需要编写自己的方法来跟踪时段中的事件数。

考虑使用eventRender事件并在找到该时间段的X个事件后隐藏事件。

类似的东西:

var eventSlots = {};

eventRender: function(event, element, view) {
    var slotId = event.start.format('YYYYMMDDhh');
    if !(slotId in eventSlots) {
        eventSlots[slotId] = 1;
    } else {
        eventSlots[slotId]++;
        if ( eventSlots[slotId] > X ) {
            element.find('.fc-event').addClass('hidden');
        }
    }
}

我没有测试过上述情况,但认为这样的事情对你有用。

要记住的事项,您的广告位尺寸以及是否发生部分重叠将需要更多逻辑和自定义的< slotId'