Прямо тогда я использую FullCalendar для отображения событий от многочисленных источников, некоторой локальной подачи JSON, других от Google Calendar. Я реализовал опцию, посредством чего единственный календарь может быть отображен / скрытый, когда это - флажок, TRUE или FALSE соответственно.
Я использую этот код к achive это:
$('#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 Calendar, проблема - он, никогда не скрывает календарь снова..., если я нажимаю времена флажка 10, (1=off, 2=on, 3=off, 4=on и т.д.) он отображает 5 версий того же календаря.
Документация, действительно кажется, не дает много ключа к разгадке, и кажется, что эта проблема заполонила некоторых на Стройплощадке Google для проекта.
Как я удаляю источник события?! *кричит*
Любая справка ценилась бы.
Итак, я нашел решение своей проблемы, я решил просмотреть проблемы проекта Google и заметил, что кто-то поднял проблему для той же проблемы, что и у меня, теперь в документации говорится:
Источник должен быть ссылкой на исходный массив/URL/функцию. События из источника будут немедленно удалены из календаря.
Я думал, что это означает, что для удаления календаря я должен использовать источник, идентичный тому, который я добавил, так что если бы я добавил источник /getEvents.php
, я должен был бы удалить его таким же образом, но на самом деле это означает, что я должен использовать точно такой же источник.
Поэтому я установил источник как элемент в массиве (id календаря как ключ), а затем я могу добавить / удалить календарь на основе этого, это теперь решило проблему.
Вам следует повторно обработать события после добавления / удаления источника или, возможно, попытаться повторно получить события , если это не сработает. Это может быть проблемой.