2010-06-22 22 views
5

En este momento, estoy usando FullCalendar para mostrar eventos de varias fuentes, algunas fuentes JSON locales, otras de Google Calendar. Implementé una función mediante la cual se puede mostrar u ocultar un solo calendario cuando la casilla de verificación es verdadera o falsa, respectivamente.Problema al eliminar orígenes de eventos de FullCalendar (jQuery)

Estoy usando este código para que 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); 
    } 
}); 

En este ejemplo, si sólo para mostrar/ocultar una alimentación de Google Calendar, el problema es que nunca se esconde el calendario de nuevo ... si hago clic en el casilla de verificación 10 veces, (1 = apagado, 2 = encendido, 3 = apagado, 4 = encendido, etc.) muestra 5 versiones del mismo calendario.

The documentation realmente no parece dar muchas pistas y parece que este problema ha plagiado unos pocos en el sitio de proyecto de Google para el proyecto.

Cómo eliminar un evento souce ?! * llora *

Cualquier ayuda sería apreciada.

Respuesta

8

En ese momento, en realidad, he encontrado la solución a mi problema, decidí mirar hacia atrás en los temas del proyecto Google y se dio cuenta de que someone had raised an issue para el mismo problema que tenía, ahora la documentación dice:

La fuente debe ser una referencia a la matriz/URL/función original. Los eventos de la fuente se eliminarán inmediatamente del calendario.

pensé que esto significaba para eliminar un calendario que tendría que utilizar una fuente idéntica a la que he añadido, por lo que si he añadido fuente /getEvents.php que habría que eliminarlo de la misma manera, en lugar de lo que realmente significa es que tengo que usar la misma fuente exacta.

Así que establecí la fuente como un elemento en una matriz (ID de calendario como la clave) y luego puedo agregar/eliminar el calendario basado en esto, esto ahora ha resuelto el problema.

+0

Ahh, bien, me alegra que lo hayas averiguado ... Todavía me estaba rascando la cabeza: P – Mottie

+0

Saludos, gracias por tu ayuda de todos modos, cierto me iluminó a esas dos funciones útiles. Parece que la documentación no es tan clara como podría ser. –

+0

OMG. Por favor ... POR FAVOR deje que esta sea la solución que he estado buscando. Estuve despierto desde la 1:00 hasta las 4:00 de la madrugada trabajando en este "error duplicado". sollozo ... Creo que para aclarar las cosas, debe agregar a su código de respuesta la solución que encontró, es decir, 'var gcal = $ .fullCalendar.gcalFeed (fuente); // la referencia $ ('# calendar'). fullCalendar ('addEventSource', gcal); $ ('# calendar'). FullCalendar ('removeEventSource', gcal); 'Implementando ahora los dedos cruzados ... – wired00

1

Debería rerender events después de agregar/eliminar una fuente, o quizás intentar refetch events si eso no funciona. Eso podría ser el problema.

+0

Gracias por su respuesta, pero si renuevo los eventos, no ocurre nada, si vuelvo a buscar los eventos, el calendario de Google sigue agregándose: S –

+0

Solo un seguimiento @fudgey, he descubierto mi problema, vea mi respuesta. Saludos :-) –

Cuestiones relacionadas