从FullCalendar(jQuery)中删除事件源的问题

Ben*_*ard 5 jquery fullcalendar

就在那时,我正在使用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);
    }
});
Run Code Online (Sandbox Code Playgroud)

这个例子只是为了显示/隐藏Google Calendar Feed,问题是它再也不会隐藏日历...如果我单击10次复选框,(1 =关闭,2 =开启,3 =关闭,4 =开启等)它显示同一日历的5个版本.

该文档似乎并没有提供很多线索,似乎这个问题已经在Google Project网站上为该项目带来了一些问题.

如何删除事件源?!*哭*

任何帮助,将不胜感激.

Ben*_*ard 8

就在那时,我实际上找到了我的问题的解决方案,我决定回顾一下Google Project问题,并注意到有人针对我遇到的同样问题提出了一个问题,现在文档说:

Source必须是对原始Array/URL/Function的引用.来自源的事件将立即从日历中删除.

我认为这意味着要删除一个日历,我必须使用与我添加的相同的源,所以如果我添加源代码/getEvents.php我将不得不以相同的方式删除它,而实际上它意味着我必须使用完全相同的来源.

所以我将源设置为数组中的项(日历ID作为键),然后我可以基于此添加/删除日历,现在已经解决了问题.