El calendario le permite al usuario arrastrar un intervalo de tiempo al calendario; sin embargo, me gustaría que pudieran eliminarlo si hacen clic en él.
Así que en eventClick tengo esta función:
function (calEvent) { removeRequestedEvent($(this), calEvent); },Simplemente pasa el evento del calendario y el calendario en sí.
removeRequestedBooking: function (cal, calEvent) { if (!confirm("Delete?")) return; cal.fullCalendar("removeEvents", calEvent.id); cal.fullCalendar("rerenderEvents"); // Re-show draggable element $("#requests #" + calEvent.id).show(); }También intenté usar un filtro, pero nunca se alcanza un punto de interrupción en la declaración de devolución.
cal.fullCalendar("removeEvents", function (event) { return event.id == calEvent.Id; });¿Algunas ideas? (Sé que la identificación es correcta y la última línea funciona). Firebug no muestra ningún error en el javascript.
Estoy usando FullCalendar v1.4.10
Cuando tenga todas sus identificaciones en su lugar, use la solución de Tuan.
Pero cuando NO tenga identificaciones en su evento, hágalo así (esto también funciona cuando tiene identificaciones configuradas):
eventClick: function(event){ $('#myCalendar').fullCalendar('removeEvents',event._id); }¿Por qué aparece este problema? La razón común de esto es que fullcalendar no agrega una identificación automáticamente cuando agrega un nuevo evento. Si es así, la identificación que ha pasado no está definida. Fullcalendar usa id en ambos casos cuando intenta eliminar usando id o filter. Entonces, cuando su valor no está definido, siempre devuelve falso. La lista de significados de elementos para eliminar siempre está vacía.
Aún más simple:
eventClick: function(calEvent, jsEvent, view) { $('#calendar').fullCalendar('removeEvents', function (event) { return event == calEvent; }); }En lugar de usar su pase en cal, ¿puede intentar usar una llamada al div que contiene su calendario?
En el caso de eventClick , this se refiere al HTML del evento según lo que estoy leyendo en los documentos.