Jquery 使用FullCalendar筛选事件并将其添加回
在使用removeEvent方法删除事件后,将事件添加回日历时遇到问题 我有一个JSON对象,包含用户应该看到的所有日历事件。列表中填充了复选框,使用户能够通过以下代码按类别显示和隐藏事件Jquery 使用FullCalendar筛选事件并将其添加回,jquery,fullcalendar,Jquery,Fullcalendar,在使用removeEvent方法删除事件后,将事件添加回日历时遇到问题 我有一个JSON对象,包含用户应该看到的所有日历事件。列表中填充了复选框,使用户能够通过以下代码按类别显示和隐藏事件 var value = $(this).val(); $('#calendar').fullCalendar('removeEvents', function(event) { return event.subscription == value; }); 我希望显示/呈现用户在重新选中相应框时选择隐藏的事
var value = $(this).val();
$('#calendar').fullCalendar('removeEvents', function(event) {
return event.subscription == value;
});
我希望显示/呈现用户在重新选中相应框时选择隐藏的事件,而不重新加载整个页面和JSON源,但保留未选中、删除的其他事件
有没有办法使用我用来删除事件的相同数据来实现这一点?即。
return event.subscription==值 以下是我用于我的应用程序的实现。我创建了一个自定义EventManager对象,它保存了我所有事件的主数组。另外,我告诉fullCalendar要在日历中加载哪些事件子集(使用'addEventSource'和'removeEventSource'方法) 希望这有帮助!:-)
谢谢,这是一个有趣的替代方式,我正在进行的。我会给它一个机会,当我有一些时间,我用这个编辑版本来完成我需要的,谢谢你的指导!注意,代码中有一个问题(希望是一个副本检查;))请确保使用
filterFN(事件)执行某些操作代码>如果你想让jquery的map函数发挥任何作用。很高兴这有帮助,差不多2年后:p
EventManager = (function(){
var rootEventSource = [];
var filteredEventSource = [];
return {
// Usage: EventManager.setSource([pass,event,array,here]);
setRootSource : function(events){
rootEventSource = events;
},
filterCalendar : function(filterFN){
$("#calendar").fullCalendar('removeEventSource',filteredEventSource);
filteredEventSource = $.map(rootEventSource, function(event){
filterFN(event);
});
$("#calendar").fullCalendar('addEventSource', filteredEventSource);
}
};
})();
//In your fullcalendar init code:
$("#calendar").fullCalendar({
// init options
// go in here...
, events: function( start, end, callback ) {
//get events from your server, etc...
events = some ajax function(start, end)...
//store the full set of events in our Event Manager
EventManager.setRootSource(events);
//pass fullcalendar an empty array
callback([]);
}
});
//in your check/uncheck handler
value = $(this).val();
EventManager.filterCalendar(function(event) {
return event.subscription == value;
});