fullcalendar removeEventSource不工作

fullcalendar removeEventSource不工作,fullcalendar,Fullcalendar,我正在使用FullCalendar v2.3.0 当我单击一个日期时,单元格的背景颜色会更改为“其已预订”,它与addEventSource完美配合,将选定的日期存储在一个数组中 当im再次单击选定日期时,需要将单元格的背景颜色更改为白色,以便预订 如何将单元格颜色删除为原始颜色? 如何使用.fullCalendar“removeEventSource”删除特定日期的事件源 select: function (start, end, jsEvent, view, cell, calEvent)

我正在使用FullCalendar v2.3.0

当我单击一个日期时,单元格的背景颜色会更改为“其已预订”,它与addEventSource完美配合,将选定的日期存储在一个数组中 当im再次单击选定日期时,需要将单元格的背景颜色更改为白色,以便预订

如何将单元格颜色删除为原始颜色? 如何使用.fullCalendar“removeEventSource”删除特定日期的事件源

select: function (start, end, jsEvent, view, cell, calEvent) {
  if (jQuery.inArray(moment(start).format('YYYY-MM-DD'), sel_dates) == -1) {
    sel_dates.push(moment(start).format('YYYY-MM-DD'));           
    $("#calendar").fullCalendar('addEventSource', [{
      start: start,
      end: end,
      rendering: 'background'
    }]);
  }
  else {  
    sel_dates.pop(moment(start).format('YYYY-MM-DD'));
    // Here i need to change the cell background color
  }
}

select的正确方法签名是函数start、end、jsEvent、view、[resource]。看见我不知道你从哪里知道里面有cell或calEvent

选定的区域可以跨越多个单元格,因此不能像这样直接更改背景颜色。无论如何,即使可以,这也没有什么区别,因为您必须删除之前添加的位于单元格顶部的事件。事件不仅仅是一些背景颜色-即使是背景事件实际上也是一个需要管理的对象,尽管它的外观可能只是颜色变化

一些建议:

1我不会仅仅为了创建一个事件而添加整个事件源。事件源用于将大型事件组拆分为逻辑块,以便于管理它们或从不同的服务器获取它们

而是使用renderEvent创建新的单个事件。如果您有任何现有的事件源,您可以选择指定一个事件源的ID以将其包含到其中

2要删除事件,正如我所解释的,您不能只是还原背景颜色,您需要删除实际事件本身。您也不能为此使用select回调,因为您不能确定用户是否会选择与任何特定事件实际匹配的大小相同的区域

允许删除的一个明显方法是处理eventClick回调,并要求用户确认是否要删除。如果他们同意,您可以调用removeEvents方法,传递用户单击的事件的ID