2017-01-26 8 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

eventDragStarteventDragStopfetchEventsLock参照を使用して、最も効率的ではないことと=== 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も必要です。 –

関連する問題