我最近在一个项目中做了与你想要做的完全相同的事情。
Fullcalendar支持非标准字段。
非标准字段
除了上面的字段外,您还可以在每个事件对象中包含自己的非标准字段。 FullCalendar不会修改或删除这些字段。例如,开发人员经常包括一个描述字段,用于回调,例如eventRender。
源代码
因此,您可以像这样做
//Save user created event
$('#calendar').fullCalendar('renderEvent', {
title: title,
end: end,
start: start,
editable : true,
//nonstandard field
isUserCreated: true,
description: description,
});
然后移除未由用户创建的事件。
var allEvents = $('#calendar').fullCalendar('clientEvents');
var userEventIds= [];
$.each(allEvents,function(index, value){
if(value.isUserCreated !== true){
userEventIds.push(value._id);
}
});
$('#calendar').fullCalendar( 'removeEvents', userEventIds);
如果您需要更少的控制,那么就像 @A1rPun 建议的那样简单地操作即可。
$('#calendar').fullCalendar( 'removeEvents', function(e){ return !e.isUserCreated});
addEventSource
中保留对传入源的引用,这个引用可以用于使用removeEventSource
函数来删除它们。另一种方法是为用户创建的所有事件添加一个属性,并调用.fullCalendar('removeEvents', function(e){ return !e.customProperty })
。 - A1rPun