обратный вызов eventRender отображает все события, как отобразить только одно событие

Поэтому я просто добавляю событие (созданное jsonдля него с id, start и т. д.)

Я попробовал следующее:

$('#calendar').fullCalendar('renderEvent', my_event);
$('#calendar').fullCalendar('updateEvent', my_event);

Они делают обратный вызов следующим образом:

eventRender: function(event, element) {
    console.log('in event Render callback');
    console.log(event);
}

eventRender отображает все события в календаре при добавлении одного события. Таким образом, я могу сразу увидеть мое добавленное событие в календаре, и 2 инструкции журнала консоли печатаются для всех событий, включая новое.

Как я могу добавить только это новое событие ( с новым идентификатором) в календарь, чтобы только это новое событие отображалось (eventRenderобратный вызов только для нового события), а не все события?

1 ответ

  1. Боюсь, что по умолчанию это невозможно. Вы можете попробовать сделать что-то вроде этого:

    $(document).ready(function() {
    
          var date = new Date();
          var d = date.getDate();
          var m = date.getMonth();
          var y = date.getFullYear();
    
          $('#button_id').click(function() {
            var newEvent = {
              title: 'NEW EVENT',
              start: new Date(y, m, d),
              render: true
            };
            $('#calendar').fullCalendar('renderEvent', newEvent, 'stick');
          });
    
          $('#calendar').fullCalendar({
            editable: true,
            eventRender: function(event, element) {
              if (event.render) {
                element.addClass('test');
              }
              event.render = false;
            }
          });
    
        });
    

    Код выше добавит класс css «test» только к последнему добавленному событию. Может быть, это как-то поможет вам.

    Играть на скрипке

    С наилучшими пожеланиями!
    Krzysztof