我从数据库加载了一些事件。所有事件都被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并将日历复制到该事件中?
答案 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/
祝你好运