0

我有一些从数据库加载的事件。所有事件都用 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 并使日历复制该事件?

4

1 回答 1

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/

于 2016-12-06T13:08:01.537 回答