0

嗨,我想要一个事件源,它允许在不调整大小的情况下覆盖(碰撞)其他事件源。

但是其他事件源应该仍然使用正常的碰撞检测和调整大小?

有人有同样的问题吗?

4

1 回答 1

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);
}
于 2012-08-03T17:08:59.090 回答