1

首先,我使用的是 fullcalendar v5。

到目前为止我所取得的成就

该标志用于指示开始和结束事件。第二个和第三个事件是第一个事件的重复。我想要实现的是,当我在第一个事件上选择一个日期时,它会将背景颜色更改为白色,第二个和第三个事件将自动跟随第一个事件。

这是我的代码:

     dateClick: function (info) {
        var events = calendars[1].getEvents();
        var startEvent = null;
        var endEvent = null;
        var duration = 0;

        if (events != null) {
          startEvent = events[0].start;
          endEvent = events[0].end;

          if (moment(info.date).isBetween(moment(startEvent), moment(endEvent).subtract(1, 'days'))) {
            duration = moment.duration(moment(info.date).diff(moment(startEvent))).asDays();

            console.log(info);

            Swal.fire({
              title: 'Rmove only this day',
              icon: 'warning',
              showCancelButton: true,
              confirmButtonColor: '#3085d6',
              cancelButtonColor: '#d33',
              confirmButtonText: 'Yes, delete it!'
            }).then((result) => {
              if (result.isConfirmed) {
                events.forEach(event => {
                  console.log(event)
                  $('.fc-daygrid-day[data-date="' + moment(event.start).add(duration, 'days').format('YYYY-MM-DD') + '"] ').css('background-color', '#fff');
                });
              }
            })
          }
        }
      }

问题是当我更改为其他月份时,已经更改为白色的日期背景颜色将在全日历重新渲染时变回蓝色。

当我更改为其他月份并返回时,它变成了这个

4

0 回答 0