首先,我使用的是 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');
});
}
})
}
}
}
问题是当我更改为其他月份时,已经更改为白色的日期背景颜色将在全日历重新渲染时变回蓝色。
当我更改为其他月份并返回时,它变成了这个