FullCalendar dow属性中的重复事件

时间:2016-12-06 10:33:12

标签: javascript jquery fullcalendar recurring-events

我从数据库加载了一些事件。所有事件都被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属性更改为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并将日历复制到该事件中?

1 个答案:

答案 0 :(得分: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/

祝你好运