Хороший способ включить автоматическое обновление событий в плагине fullCalendar jquery? - PullRequest
2 голосов
/ 09 декабря 2010

Есть ли хороший способ, чтобы плагин fullCalendar jquery автоматически обновлял свои события?

Я могу просто вызывать 'refetchEvents' с помощью таймера, но это вызывает проблемыпользователь в настоящее время перетаскивает событие (выбрасывает ошибки JavaScript во время обновления, когда событие перетаскивается).Есть ли лучший способ?

Ответы [ 2 ]

3 голосов
/ 27 июня 2012

Хорошее решение ... но недостаточно:

var calE = {
        url: 'calendarEvents.do',
        type: 'POST',
        data: {
            siteId: $("#siteId").val()
        },
        error: function() {
            alert('there was an error while fetching events!');
        }
};

function loadCal(){
        $('#calendar').fullCalendar({
                theme: true,
                events: calE,
                editable: false,            
                eventDrop: function(event, delta) {
                        alert(event.title + ' was moved ' + delta + ' days\n' +
                                '(should probably update your database)');
                },          
                loading: function(bool) {
                        if (bool) $('#loading').show();
                        else $('#loading').hide();
                },
                viewDisplay: function(viewObj) {}           
        });

}

function reloadCalendar(){
    $('#calendar').fullCalendar('removeEventSource', calEvent );
    var source = {
            url: 'calendarEvents.do',
            type: 'POST',
            data: {
                siteId: $("#siteId").val()
            },
            error: function() {
                alert('there was an error while fetching events!');
            }
        };
    $('#calendar').fullCalendar('removeEvents');
    $('#calendar').fullCalendar('addEventSource', source );
    $('#calendar').fullCalendar('rerenderEvents');
    calE = source;
}

Используя это, вы сохраните оригинальный алгоритм для извлечения данных.

0 голосов
/ 31 декабря 2010

вам просто нужно отслеживать флаг, должно ли происходить автообновление.по умолчанию оно должно быть true, но при перетаскивании или изменении размера должно быть установлено значение false.Вы можете установить его на основе eventDragStart, eventDragStop, eventResizeStart и eventResizeStop.

. См. http://arshaw.com/fullcalendar/docs/event_ui/ для списка связанных с мышью триггеров.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...