2017-01-26 7 views
1

Я пытаюсь получить fullcalendar, чтобы реагировать на опрос для новых событий, но всякий раз, когда он вызывает refetchEvents, если я перетаскиваю или изменяю размер, это останавливает меня, как будто я выпустили мышь в позицию, в которой я находилась, которая перемещает или изменяет размеры события соответственно на неправильное место.Как остановить fullcalendar от прерывания перетаскивания и изменения размера при опросе

У меня есть jsfiddle, чтобы показать это в действии.

Вот код, если это помогает: только

$(document).ready(function() { 

    /* initialize the calendar 
    -----------------------------------------------------------------*/ 

    $('#calendar').fullCalendar({ 
    header: { 
     left: 'prev,next today', 
     center: 'title', 
     right: 'month,agendaWeek,agendaDay' 
    }, 
    editable: true, 
    events: [{ 
     title: 'event1', 
     start: '2017-01-26T08:00:00', 
    end: '2017-01-26T10:00:00' 
    }, { 
     title: 'event2', 
     start: '2017-01-05', 
     end: '2017-01-07' 
    }, { 
     title: 'event3', 
     start: '2017-01-09T06:30:00', 
    end: '2017-01-09T09:30:00', 
    }] 
    }); 
}); 
setInterval(function() { 
    $('#calendar').fullCalendar('refetchEvents'); 
    console.log('refetchEvents called'); 
}, 5000); 

ответ

1

Может быть не самым эффективным, используя fetchEventsLock ссылку на eventDragStart и eventDragStop и принеси событий, когда выпустили === false.

var fetchEventsLock = false; 
$(document).ready(function() { 

    /* initialize the calendar 
    -----------------------------------------------------------------*/ 

    function toggleLock() { 
     fetchEventsLock = !fetchEventsLock; 
     console.log('Set To ' + fetchEventsLock) 
    } 
    $('#calendar').fullCalendar({   
     eventDragStart: toggleLock, 
     eventDragStop: toggleLock, 
     /* Other option removed */ 

    }); 
}); 
setInterval(function() { 
    if (fetchEventsLock === false) { 
     $('#calendar').fullCalendar('refetchEvents'); 
     console.log('refetchEvents called'); 
    } 
}, 5000); 
+1

Это работает достаточно хорошо для меня, кроме того, что ему требуется eventResizeStart: toggleLock и eventResizeStop: toggleLock. –