2016-12-06 192 views
0

我已經從數據庫中加載了一些事件。所有的事件都用dow:''來初始化,因爲我不希望這些事件在某一天發生,除非這樣告訴。我的事件是從外部事件定義的,當拖動到日曆上時,將數據發送到數據庫。FullCalendar dow屬性中的重複事件

if($(this).text() == 'event1') { 
    $(this).data('event', { 
    title: $.trim($(this).text()), 
    stick: true, 
    start : '2016-12-01T12:00:00', 
    allday : false, 
    dow : '' 
    ... 

因此,如果用戶想要的事件復發週一例如,用戶按下一個複選框星期一,然後點擊的情況下,eventClick火災和改變道指屬性與DOW:[0]。

eventClick: function(event, jsEvent, view) { 
      console.log("attempting click"); 
      if ($('#day1').is(':checked')) { // day1 is a checkbox for monday 
       event.dow = [0]; 
       ... 

當所有事件都重新呈現時,這並不會在下列星期一複製事件。 'dow'似乎只有在你明確定義事件時設置它,或者我錯了嗎?有一種方法可以在給定事件創建後動態定義.dow,並使日曆複製該事件?

回答

0

試試這個:

$('#calendar').fullCalendar({ 
     weekends: true, 
     defaultView: 'agendaWeek', 
     allDaySlot: false, 
     header: { 
      left: 'month,agendaWeek,agendaDay,listDay', 
      center: 'title', 
      right: 'prev,next today' 
     }, 
     events: [{ 
      id: 999, 
      title: 'event1', 
      start: '2016-12-05T16:00:00', 
      end: '2016-12-05T18:00:00' 
     }], 
     height: 'auto', 
      editable: true, 
     eventClick: function(event, jsEvent, view) { 
     var updatedEvent = { 
       id: 999, 
       title: 'updated event1', 
       start: '16:00:00', 
       end: '18:00:00', 
       dow: [0] 
      }; 
     $('#calendar').fullCalendar('removeEvents', event._id); 
     $('#calendar').fullCalendar('renderEvent', updatedEvent, true); 
     } 
     }); 

https://jsfiddle.net/rjzn6yuj/

問候
剋日什托夫·

+0

我試圖把這個,它會刪除該事件與當月創造的每一天新的事件,但如果你換成新的月份並換回,有每個星期一更新的event1的5份副本 – jones

+0

當renderEvent調用updatedEvent時,重複出現時stick = true的屏幕截圖 - > http://imgur.com/a/js80L – jones

+0

一世試圖弄清楚什麼是錯的。 –