您好我想要一个事件源,允许覆盖(碰撞)其他事件源而不需要调整大小。
但其他事件源仍应使用正常的碰撞检测和调整大小?
有人有同样的问题吗?
答案 0 :(得分:0)
好的,我找到了解决方案:
首先将fullcalendar中的函数segCollide(seg1,seg2)更改为:
function segsCollide(seg1, seg2) {
if(seg1.allowCollision || seg2.allowCollision)
{
return false
}
else
{
return seg1.end > seg2.start && seg1.start < seg2.end;
}
}
并且sliceSegs()为:
function sliceSegs(events, visEventEnds, start, end) {
var segs = [],
i, len=events.length, event,
eventStart, eventEnd,
segStart, segEnd,
isStart, isEnd;
for (i=0; i<len; i++) {
event = events[i];
allowCollision = event.source.allowCollision;
eventStart = event.start;
eventEnd = visEventEnds[i];
if (eventEnd > start && eventStart < end) {
if (eventStart < start) {
segStart = cloneDate(start);
isStart = false;
}else{
segStart = eventStart;
isStart = true;
}
if (eventEnd > end) {
segEnd = cloneDate(end);
isEnd = false;
}else{
segEnd = eventEnd;
isEnd = true;
}
segs.push({
event: event,
start: segStart,
end: segEnd,
allowCollision: allowCollision,
isStart: isStart,
isEnd: isEnd,
msLength: segEnd - segStart
});
}
}
return segs.sort(segCmp);
}