有没有办法防止jQuery FullCalendar中的重叠事件?

use*_*637 30 jquery fullcalendar

有没有办法防止jQuery FullCalendar中的重叠事件?

ecr*_*ruz 17

我创建了一个函数来检查给定事件是否与其他事件重叠.如果事件与其他事件重叠,则返回true,否则返回false.

function isOverlapping(event){
    var array = calendar.fullCalendar('clientEvents');
    for(i in array){
        if(array[i].id != event.id){
            if(!(Date(array[i].start) >= Date(event.end) || Date(array[i].end) <= Date(event.start))){
                return true;
            }
        }
    }
    return false;
}
Run Code Online (Sandbox Code Playgroud)

您可以在删除或调整大小和事件时使用它,如果事件与其他事件重叠,则使用在eventDrop和eventResize回调中接收的revertFunc,或取消在select回调中创建事件.要在select回调中使用它,请创建一个dummie事件:

var event = new Object();
event.start = start;
event.end = end;
Run Code Online (Sandbox Code Playgroud)


inN*_*ent 13

自版本2.20起,此更改已默认合并...

使用

eventOverlap:false

http://fullcalendar.io/docs/event_ui/eventOverlap/


小智 8

与ecruz的答案相同,但逻辑对我来说更好.

function isOverlapping(event){
    // "calendar" on line below should ref the element on which fc has been called 
    var array = calendar.fullCalendar('clientEvents');
    for(i in array){
        if (event.end >= array[i].start && event.start <= array[i].end){
           return true;
        }
    }
    return false;
}
Run Code Online (Sandbox Code Playgroud)

  • 嘿!:(那不好 (3认同)

Egg*_*gie -3

允许CalEventOverlap:[布尔值| 默认值: false] \xe2\x80\x93 日历是否允许事件重叠。如果事件被拖动或调整大小到与另一个日历事件重叠的位置,则如有必要,事件将被移动或调整大小。

\n\n

这就是你要找的吗?

\n

  • 我认为这是针对 jQuery Week Calendar 的;)它不适用于 jQuery FullCalendar。 (3认同)