2016-12-06 199 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

一世试图弄清楚什么是错的。 –