【问题标题】:Recurring events in FullCalendar dow propertyFullCalendar 属性中的重复事件
【发布时间】:2017-04-20 23:07:26
【问题描述】:

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

【问题讨论】:

    标签: javascript jquery fullcalendar recurring-events


    【解决方案1】:

    试试这个:

    $('#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/

    【讨论】:

    • 我尝试将其放入,它会删除该事件并为该月的每一天创建一个新事件,但如果您换到新月份并换回,则更新后的事件 1 上会有 5 个副本每个星期一
    • 在更新事件的 renderEvent 调用中,当stick = true 时出现的重复截图 --> imgur.com/a/js80L
    • 我尝试在没有 dow 属性的情况下添加一个事件,我没有遇到任何问题,我能够在几个月之间来回切换而不会创建重复项。但是我需要 dow 属性来复制指定日期的事件,所以不能帮助我:(
    • 这不会产生重复。请尝试:jsfiddle.net/5mt9seh8
    猜你喜欢
    • 2017-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多