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