就在那时,我正在使用FullCalendar来显示来自多个来源的事件,一些本地JSON供稿,其他来自Google日历。我已经实现了一个功能,当它的复选框分别为true或false时,可以显示/隐藏单个日历。
我正在使用此代码来实现它:
$('#calendar_list input','#sidebar').live('click', function() {
if($(this).is(":checked")==true) {
// display the calendar
var source = $.fullCalendar.gcalFeed("http://www.google.com/calendar/feeds/usa__en%40holiday.calendar.google.com/public/basic");
$('#calendar').fullCalendar('addEventSource', source);
} else {
// remove the calendar
var source = $.fullCalendar.gcalFeed("http://www.google.com/calendar/feeds/usa__en%40holiday.calendar.google.com/public/basic");
$('#calendar').fullCalendar('removeEventSource', source);
}
});
此示例如果只是为了显示/隐藏Google日历Feed,问题是它再也不会隐藏日历...如果我单击复选框10次,(1 =关闭,2 =开启,3 =关闭, 4 = on etc)它显示同一日历的5个版本。
The documentation似乎并没有给出很多线索,而且似乎这个问题已经在Google Project网站上为这个项目带来了一些问题。
如何删除活动源?! * *呼喊
任何帮助都将不胜感激。
答案 0 :(得分:8)
就在那时,我实际上找到了问题的解决方案,我决定回顾一下Google Project问题,并注意到someone had raised an issue我遇到了同样的问题,现在文档说:
Source必须是对原始Array / URL / Function的引用。来自源的事件将立即从日历中删除。
我认为这意味着要删除一个日历,我必须使用与我添加的源相同的源,所以如果我添加了源/getEvents.php
,我将不得不以相同的方式删除它,而不是它实际上是什么意思是我必须使用完全相同的来源。
所以我将源设置为数组中的项(日历ID作为键),然后我可以根据此添加/删除日历,现在已经解决了这个问题。
答案 1 :(得分:1)
添加/删除源后您应该rerender events,或者如果不起作用,可以尝试refetch events。这可能是问题所在。