ThreegunD
@ThreegunD

Fullcalendar.js запрет добавления пересекающихся дат?

https://fullcalendar.io/docs/renderEvent
Есть в документации такой метод, он добавляет событие в календарь.
Как запретить добавление события, если оно попадает на время другого события?

Знаю, что есть параметр eventOverlap: false, но как я понимаю он работает только , когда мы перетаскиваем события мышью друг на друга, а мне нужно именно динамическое добавление события.

p.s использую defaultView: 'agendaWeek',
  • Вопрос задан
  • 277 просмотров
Решения вопроса 1
Vlad_IT
@Vlad_IT Куратор тега JavaScript
Front-end разработчик
Вам скорее всего придется писать предварительную проверку перед добавлением. Типа пишите
var isEventExists = $('#calendar').fullCalendar('clientEvents');
events.some(function(event) {
 /* проверяем, попадает ли искомое событие под время нашего, 
если да, возвращаем true, и isEventExists будет равным true, 
что значит, что такое событие есть */ });

Так же вторым аргументом можно передать фильтрующую функцию
var eventList = $('#calendar').fullCalendar ('clientEvents', function(event) { 
/* возвращаем true, если время одинаковое время события,
 тогда оно будет добавлено в массив найденных событий, 
который будет возвращен в eventList */ });


В обоих кодах в функцию передается объект Event, у него есть параметры start и end события, по ним и сравниваем.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы