Как динамически удалить несколько событий (массив событий) из FullCalendar? - PullRequest
0 голосов
/ 06 августа 2020

Я использую FullCalendar (v3.9) для управления различными встречами. Когда я пытаюсь создать новые встречи, я должен проверить, не перекрываются ли какие-то с текущими, и удалить перекрывающиеся.

Все работает отлично, но производительность удаления перекрывающихся событий является проблемой и удаление массива событий не работает .

На данный момент я делаю это так (закомментированный код - это то, как я пытался удалить массив):

//var dupliElements = [];

var cEventsOnSameDay = 
    calendarElement.fullCalendar("clientEvents", function (cEvents) {
        return events[i].end >= cEvents.start && events[i].start <= cEvents.end;
});

if (cEventsOnSameDay.length > 0) {
    $.each(cEventsOnSameDay, function (key, cEventOnSameDay) {
        var oEvent = cEventOnSameDay; //overlappingEvent
        if (oEvent.editable) {
            if (!oEvent.allDay) {
                //events[i] is the current element i'm trying to add
                if (oEvent.start <= events[i].start) events[i].start = oEvent.start;
                if (oEvent.end >= events[i].end) events[i].end = oEvent.end;
            } else {
                events[i] = oEvent;
            }
            //dupliElements.push(oEvent);
            calendarElement.fullCalendar("removeEvents", oEvent.id);
        } else overlapError = true;
    });
}

//calendarElement.fullCalendar('removeEventSources', dupliElements);   

Это нормально работает, но очень медленно при удалении нескольких событий (например, 5 секунд для 30 событий ...). Как удалить массив событий?

Я везде искал решение, но ничего не нашел. Любая помощь будет очень признательна!

...