Fullcalendar eventOverlap问题

时间:2016-01-07 17:21:16

标签: ajax events fullcalendar overlap

我使用的是fullCalendar 2.6,我每天只想要一个allday事件。 我用这个:

eventOverlap: false

如果我发布一个事件并在已经发生事件的那一天移动它,它就会起作用:它们不会重叠。 但是,如果我点击已经发生事件的那一天,它会重叠,我会在同一天收到2个事件(或更多)...... 我也在我的select函数中使用它:

overlap: false

哪个不起作用..

我该怎么办?任何想法?

另一个问题是当我使用ajax发送开始/结束日期时,它只有在我点击添加事件时才有效,但是当我将光标移动到事件的边缘以改变它时大小...

我的代码:

    function renderCalendar() {
        $('#calendar').fullCalendar({
            header: {
                left: 'prev,next today',
                center: 'title',
                right: 'month,basicWeek,basicDay',
            },
            defaultDate: dateNow,
            defaultView: 'month',
            lang: 'fr',
            height: 'auto',
            editable: true,
            allDaySlot: true,
            weekNumbers: false,
            timeFormat: 'H:mm',
            slotEventOverlap: false,
            weekends: true,
            selectable: true,
            selectHelper: true,
            eventOverlap: false,
            select: function(start, end) {
                var title = 'Occupé';
                var eventData;
                if (title) {
                    eventData = {
                        title: title,
                        start: start,
                        end: end,
                        allDay: true,
                        overlap: false,
                        color: '#bf0000',
                        textColor: '#ffffff',
                    };
                    $('#calendar').fullCalendar('renderEvent', eventData, true);
                }
                $('#calendar').fullCalendar('unselect');
                alert(start);
                alert(end);
            }
        });

感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

好.. selectOverlap设置为“false”是解决方案:) 对于第二个问题,解决方案必须是eventResizeStop但我还没找到它

答案 1 :(得分:0)

试试这个。

select: function(start, end) {
    var title = 'Occupé';
    var eventData;

    var sameDayEvents = $('#calendar').fullCalendar( 'clientEvents' ,function(event) {
        if (event.start.format('YYYY-mm-dd') == start.format('YYYY-mm-dd')) {
            return true;
        } else {
            return false;
        }
    });

    if (!sameDayEvents.length && title) {
        eventData = {
            title: title,
            start: start,
            end: end,
            allDay: true,
            overlap: false,
            color: '#bf0000',
            textColor: '#ffffff',
        };
        $('#calendar').fullCalendar('renderEvent', eventData, true);
    }
    $('#calendar').fullCalendar('unselect');
    alert(start);
    alert(end);
}