0

こんにちは私は、サイズを変更せずに他のイベントソースをオーバーレイ(衝突)できるイベントソースが欲しいです。

しかし、他のイベントソースは、通常の衝突検出とサイズ変更を引き続き使用する必要がありますか?

誰かが同じ問題を抱えていましたか?

4

1 に答える 1

0

OK私は解決策を見つけました:

まず、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 に答える