Javascript 完整日历重复事件排除

Javascript 完整日历重复事件排除,javascript,fullcalendar,Javascript,Fullcalendar,我正在使用带有拖放外部事件和json数据源的fullcalendar。 默认情况下,这些事件每周重复一次 现在,我想添加一些功能,使用户可以删除此重复事件的单个实例(如在google日历中)。 我相信这将需要某种机制将某个事件日期从重复事件中排除 我在fullcalendar文档中找不到任何支持这种开箱即用行为的内容 我更喜欢仅客户端的解决方案。我创建了一个演示如何显示除一个日期之外的每日并发事件的解决方案。我已包括一个自定义属性(不包括udedDate)。 在您的解决方案中,您需要包括一个名为

我正在使用带有拖放外部事件和json数据源的fullcalendar。 默认情况下,这些事件每周重复一次

现在,我想添加一些功能,使用户可以删除此重复事件的单个实例(如在google日历中)。 我相信这将需要某种机制将某个事件日期从重复事件中排除

我在fullcalendar文档中找不到任何支持这种开箱即用行为的内容

我更喜欢仅客户端的解决方案。

我创建了一个演示如何显示除一个日期之外的每日并发事件的解决方案。我已包括一个自定义属性(不包括udedDate)。 在您的解决方案中,您需要包括一个名为excludedDates的属性,该属性包含一个日期数组,每次您想要删除一个实例时,只需将日期添加到此属性数组中。然后,在eventRender上,您将循环遍历此数组,以查看是否需要排除任何给定日期的事件

eventRender: function(event, element, view) {

    var theDate = event.start
    var excludedDate = event.excludedDate;
    var excludedTomorrrow = new Date(excludedDate);
     //if the date is in between August 29th at 00:00 and August 30th at 00:00 DO NOT RENDER
    if( theDate >= excludedDate && theDate < excludedTomorrrow.setDate(excludedTomorrrow.getDate() + 1) ) {
        return false;
    }
    }
eventRender:函数(事件、元素、视图){
var theDate=event.start
var excludedDate=event.excludedDate;
var excludedTomorrrow=新日期(excludedDate);
//如果日期介于8月29日00:00和8月30日00:00之间,则不渲染
if(theDate>=excludedDate&&theDate
您可以使用
removeEvents
功能()。我相信最后一行可能就是你要找的。假设此时您知道要删除哪个事件对象。不幸的是@Slyvain,因此这些事件实际上无法区分,我认为将它们与
removeEvents
一起使用是不可能的。它指出,
idOrFilter
也可以是一个函数,为给定的事件对象返回
true
。如果用户单击某个事件,则您知道该对象的实例,因此可以将其发送到“idOrFilter函数”。我从来没有试过,但我会这么做。谢谢,我现在明白了。我试试看。知道如何从数据源中删除事件吗?我目前正在保存从
客户事件
获得的所有事件,但我相信这仍然会反映以这种方式删除的事件。我现在正在研究切片蟾蜍对的回答。看起来是一个可行的解决方案,但这需要在服务器端进行大量的工作。我认为这就是解决方法。