调用removeEvents后,renderEvent失败 - FullCalendar

时间:2011-01-10 22:02:53

标签: jquery fullcalendar

我很确定这是一个错误。一旦我调用删除“removeEvents”,没有后续的添加(“renderEvent”)工作,那些行为就像没有“粘性”。

如果我执行以下操作:

  1. 初始化日历。
  2. 使用$("#calendar").fullCalendar( 'renderEvent', newEvent, true);
  3. 添加活动A.
  4. 使用$("#calendar").fullCalendar( 'removeEvents', 12345);
  5. 删除此活动
  6. 使用$("##calendar").fullCalendar( 'renderEvent', newEvent2, true);
  7. 添加事件B.

    事件A或B都不会出现!两个事件都有不同的ID,应该发生的事件是事件A被删除,但事件应该出现B.如果我将单个“removeEvent”取出,则会出现事件A和B(即使删除仅针对事件A的ID)。

    即使我使用$("#calendar").fullCalendar( 'rerenderEvents' );在第4步之后重新渲染事件,仍然不会显示事件B.

    更有趣的是,这似乎不仅仅是一个“渲染”问题,因为如果我使用$("#calendar").fullCalendar( 'clientEvents', ...);拉出所有事件,它不会在返回事件的数组中显示事件A或B,其中因为删除“removeEvent”将允许事件A和B出现在数组中。

    解决方案将SEEM在所有添加后删除:

    1. 添加活动A
    2. 添加活动B
    3. 删除活动A
    4. 哪个会保留事件B,但在我的应用程序中,我有拖放功能,用户可以随时“添加”新事件!所以我发现当我调用“removeEvent”然后将新事件拖入日历时会使事件的“粘性”消失,因此更改一个月将不会保留该事件。

      这是我的代码:

       $('#calendar').fullCalendar({
           theme: true,
           header: {
               left: "prev,next today",
               center: 'title',
               right: "today prev,next"
           }, 
           height: 400,
           selectable: true,
           selectHelper: true,
           unselectAuto: false, 
           select: calendarSelect,
           droppable: true,
           drop: calendarDrop,
           events:getCalendarData,
           eventClick:calendarEventClicked
       });
      
       var newEvent = {
           id: 12345,
           period: "Full-day", 
           title: "Full-day",
           start: new Date(2010, 11, 02),
           type: "Regular", 
           billable: true,
           className: "",
           changedThisSession: true
       };
      
       $("#calendar").fullCalendar( 'renderEvent', newEvent, true);
      
       $("#calendar").fullCalendar( 'removeEvents', 12345);
      
       var newEvent2 = {
           id: 4433,
           period: "Full-day", 
           title: "Full-day",
           start: new Date(2010, 11, 03),
           type: "Regular", 
           billable: true,
           className: "",
           changedThisSession: true
       };
       $("#calendar").fullCalendar( 'renderEvent', newEvent2, true);
      

      即使此代码删除ID为12345的事件,也不会显示OTHER事件(id 4433)。删除行...“removeEvents”...导致两个事件都显示出来。

      同样,我可以添加新事件,拖动它们等,它的效果很好。一旦“removeEvents”被调用一次,那么事情开始变得很奇怪。

      帮助将不胜感激!

      -Brian

1 个答案:

答案 0 :(得分:1)

我刚刚从1.4.9升级到1.4.10,清除了我的缓存并再次尝试,现在看起来一切正常。

希望就是这样。

-Brian