Проблема с удалением источников событий из FullCalendar (jQuery) - PullRequest
5 голосов
/ 22 июня 2010

В этот момент я использую 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, проблема в том, что он никогда не скрывает календарь снова ... если я поставлю флажок 10 раз, (1 = выключено, 2 = включено, 3 = выключено, 4 = включено и т. Д.) Отображает 5 версий одного и того же календаря.

Документация на самом деле, кажется, не дает много подсказок, и кажется, что эта проблема выложила несколько на сайте Google Project для проекта.

Как мне удалить источник событий ?! * Плачет *

Любая помощь будет оценена.

Ответы [ 2 ]

8 голосов
/ 25 июня 2010

Именно тогда я действительно нашел решение своей проблемы, я решил оглянуться назад на проблемы проекта Google и заметил, что кто-то поднял проблему для той же самой проблемы, с которой я столкнулся сейчас в документации написано:

Источник должен быть ссылкой на исходный массив / URL / функцию. События из источника будут немедленно удалены из календаря.

Я подумал, что это означает, что для удаления календаря мне нужно будет использовать источник, идентичный тому, который я добавил, поэтому, если я добавлю источник /getEvents.php, мне придется удалить его таким же образом, вместо этого он на самом деле означает что я должен использовать точно такой же источник.

Таким образом, я установил источник как элемент в массиве (идентификатор календаря в качестве ключа), а затем я могу добавить / удалить календарь на основе этого, теперь это решило проблему.

1 голос
/ 22 июня 2010

Вы должны повторно обработать события после добавления / удаления источника или, возможно, попытаться повторно извлечь события , если это не сработает.Это может быть проблемой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...