为了避免重复的事件,我用这个函数:fullCalendar:如何在clientEvents中按日期过滤?
function isOverlapping(event){
var array = $('#calendar').fullCalendar('clientEvents');
for(i in array){
if(array[i].id != event.id){
if(array[i].allDay || event.allDay){
if(array[i].start.getDate() == event.start.getDate()){
if(array[i].start.getMonth() == event.start.getMonth()){
return true;
}
}
}
else{
if(event.end > array[i].start && event.start < array[i].end){ return true;}
}
}
}
return false;
}
如果我的日历有很多事件,功能相当缓慢,从而提高速度,我认为这将是很好只是比较在当前视图中的事件,所以我希望我可以用clientEvents
过滤功能是这样的:
var array = $('#calendar').fullCalendar('clientEvents', function(events){ return (event.start >= view_start && view_end > event.start)});
但是,这将返回所有事件。
注: 我宣布view_start
& view_end
为全局变量和ViewDisplay计算他们是这样的:
view_start = view.visStart;
view_end = view.visEnd;
我怎样才能得到这在当前视图中可见的事件。
你要显示的具体时间范围内的事件,如每个月? 你能展示你如何获取你的活动? –
我使用php文件从mysql数据库中获取事件,并使用'json_encode'返回json提要。 – Thiru
所以你使用JSON添加你的事件,并且需要很长时间? 为什么你不过滤服务器端的事件,并在你的AJAX调用传递一个参数,告诉服务器你想要什么类型的事件? –