Fullcalendar:如何隐藏过去的重复背景事件?

时间:2016-01-07 09:34:14

标签: jquery fullcalendar

我正在添加类似的事件:

events: [

    {
        title: '',
        start: '2014-09-01T17:00:00',
        end: '2014-09-01T21:00:00',
        dow: [1], // repeat same weekday
        rendering: 'background', 
        color: '#6BA5C2'
    },
    {
        title: '',
        start: '2014-09-02T17:00:00',
        end: '2014-09-02T21:00:00',
        dow: [2], // repeat same weekday
        rendering: 'background', 
        color: '#6BA5C2'
    },
    {
        title: '',
        start: '2014-09-03T17:00:00',
        end: '2014-09-03T21:00:00',
        dow: [3], // repeat same weekday
        rendering: 'background', 
        color: '#6BA5C2'
    },

    {
        title: '',
        start: '2014-09-04T17:00:00',
        end: '2014-09-04T21:00:00',
        dow: [4], // repeat same weekday
        rendering: 'background', 
        // color: '#0A0'
        color: '#6BA5C2'
    },
    {
        title: '',
        start: '2014-09-05T17:00:00',
        end: '2014-09-05T21:00:00',
        dow: [5], // repeat same weekday
        rendering: 'background', 
        color: '#6BA5C2'
    },

这给了我(参见蓝色事件,忽略红色事件和灰色背景):

fullcal

通过使用dow,所有周视图都会显示事件。但是,我想把它们隐藏起来。所以今天是1月7日星期四,我想隐藏/删除所有过去。

此外,新属性businessHours仅在一整天内重复。

我是否必须添加单个事件而不是使用dow,还是有其他解决方案?

1 个答案:

答案 0 :(得分:1)

要隐藏过去显示的事件,请使用eventRender回调并在具有渲染属性值为“background”的较早日期的任何事件上调用hide。关于日期的确切逻辑可能有所不同,取决于您。以下示例将事件的开始与当前时间进行比较。小提琴使用固定日期,但是相同的想法。

Fiddle

$(document).ready(function() {

    $('#calendar').fullCalendar({
        ...
        eventRender: function(event, element){
            if (event.rendering == 'background' && event.start <  moment("2015-02-13")){
            element.hide();
          }
        },
        ...
    });
});