完整日历中的事件拖放应仅在特定日期发生

时间:2015-06-03 05:18:13

标签: jquery fullcalendar

我在完整日历中有两个日期,在'28 -04-2015'和'6-05-2015'。 我所拥有的事件,这些事件应该在特定日期之间落下。在其他日期,活动不应该在完整日历中删除。

1 个答案:

答案 0 :(得分:1)

您可以使用eventConstraint限制事件拖动并调整大小到某些时间窗口。

$('#calendar').fullCalendar({
    eventConstraint: {
            start: '2015-06-15',//change dates according to your needs
            end: '2015-06-29'
    },
    events: [
            {
                title: 'All Day Event',
                start: '2015-06-01'
            },
            {
                title: 'Long Event',
                start: '2015-06-07',
                end: '2015-06-10'
            }
    ],
});

上述功能可让您在2015-06-152015-06-29之间删除活动,您可以根据需要更改日期。

或者,您可以在事件数据自定义变量中存储受限日期,然后在删除事件时进行检查。

$('#calendar').fullCalendar({
    events: [
            {
                title: 'All Day Event',
                start: '2015-06-01',
                end: '2015-06-01',
                restrictedDates: ['2015-06-13', '2015-06-14', '2015-06-15']
            },
            {
                title: 'Long Event',
                start: '2015-06-07',
                end: '2015-06-07',
                restrictedDates: ['2015-06-15', '2015-06-16', '2015-06-17']
            }
        ],

     eventDrop: function( event, delta, revertFunc, jsEvent, ui, view ) { 
            if(!jQuery.inArray(event.start.format('YYYY-MM-DD'), event.restrictedDates)) {
                alert('Restricted Area.');
                revertFunc();               
            } else {
                alert('Free Access');               
            }           
     }
});

第二种解决方案更灵活,因为您可以限制个别事件的日期,但在一天结束时,选择权归您所有。