Jquery Fullcalendar:在上一次/下一次单击后保留事件属性

Jquery Fullcalendar:在上一次/下一次单击后保留事件属性,jquery,html,css,fullcalendar,Jquery,Html,Css,Fullcalendar,目标:我正在使用带有agendaWeek视图的Fullcalendar。我需要做的是单击某个星期的几个事件(更改它们的颜色),然后单击下一步转到下一个星期并选择几个其他事件 问题:每当我单击“下一步”时,旧事件(从前一周开始)都会丢失我提供给它们的属性。例如,我更改了它们的颜色并添加了active属性(自定义属性以了解当前选择了哪些事件)。这是我的密码 $('#calendar').fullCalendar({ defaultView: 'agendaWeek', header: {

目标:我正在使用带有agendaWeek视图的Fullcalendar。我需要做的是单击某个星期的几个事件(更改它们的颜色),然后单击下一步转到下一个星期并选择几个其他事件

问题:每当我单击“下一步”时,旧事件(从前一周开始)都会丢失我提供给它们的属性。例如,我更改了它们的颜色并添加了active属性(自定义属性以了解当前选择了哪些事件)。这是我的密码

$('#calendar').fullCalendar({
  defaultView: 'agendaWeek',
  header: {
    left: 'prev,next today',
    center: 'title',
    right: 'agendaWeek,agendaDay'
  },
  allDaySlot:false,
  editable: false,
  events: link_here,

  eventClick: function(calEvent, jsEvent, view) {
    if(calEvent.active)
    {

      calEvent.active=false;

      current_lessons= current_lessons.replace(calEvent.class_date+calEvent.class_id+"$",'');
    }

    else
    {
      calEvent.title="clicked";

      calEvent.active=true;
      current_lessons+=calEvent.class_date+calEvent.class_id+"$";
    } 
   if($(this).hasClass('active'))
    $(this).removeClass('active');
  else $(this).addClass('active');

  }
});
活动类用于为元素着色。再次发生的事情是,事件被着色,它们获得了一个新的active属性,设置为true,然后一旦我点击next并返回,所有事件都没有着色,并且active属性为false


我怎样才能解决这个问题?我找了很多,但没有找到我想要的东西。提前感谢。

尝试在修改事件后强制fullcalendar更新事件:

this.$("#calendar").fullCalendar('updateEvent', calEvent);
如果问题仍然存在,则可能fullcalendar没有获得正确的参考。。然后,试试这个:

// get specif event (reference)
var specificEvent = $('#calendar').fullCalendar('clientEvents', calEvent.id);
this.$("#calendar").fullCalendar('updateEvent', specificEvent);

如果其他人面临此问题,解决方案是Fullcalendar,当使用URL中JSON生成的数据时,每次使用“下一周/上一周”转到下一周时,都会从URL中重新提取事件,因此事件属性将重置。解决方案是为事件源实际设置一个数组。我通过进入javascript文件并阅读部分代码发现了这一点。它已经在一个数组中尝试过,但没有导致相同的错误,尽管我在一个小数组中尝试过,但我会在一个大数据集上尝试,看看是否成功。

我在使用fullcalendar时也遇到同样的问题。我注意到,如果调用renderEvent方法:

app.calendarObj.fullCalendar("renderEvent", {
      "start": "someDateTime",
      "end": "otherDateTime"
    });
并且您在这个方法中添加true作为第二个参数,即使您更改了月份,事件也会保留在您的日历上

app.calendarObj.fullCalendar("renderEvent", {
      "start": "someDateTime",
      "end": "otherDateTime"
    },true);

我猜你指的是specificEvent,而不是完整日历中的calEvent('updateEvent',>>specificEvent),正如我所说,我添加了一个“活动”属性,单击时此属性变为true。因此,我现在通过console对其进行了测试。在渲染时记录活动属性。在同一周内,每当我单击事件时,所有事件的属性都是正确的,当我按下“下一步”按钮时,所有属性都重置为false。我想这是一个错误,因为我在某个时候不断单击以更改视图s它正常工作(有时是的)我发现了问题,我将在下面回答,以防其他人有相同的问题。当事件源是JSON时,似乎会发生这种情况。我在一个大型数据集上试用过,效果很好:)