I am using jquery and fullcalendar to schedule activities. When users select a timeslot, a form is shown on the right of the calendar where they can enter additional details.
With the 'select' callback I render a temporary event on the calendar so my users will have visual feedback while filling out the form.
However, when they have misselected a timeslot, they are able to select a new timeslot. This however renders a second (and possibly a third, fourth...) event on the calendar.
I thought I would be able to use the 'eventAfterRender(event, element)' callback to element.siblings().remove(), but this failed as eventAfterRender is called for every event on the calendar with every renderEvent.
Maybe there is a callback or method that I am missing, but as I see it, there is no easy way to remove an "unsaved" event.
Below is some sample code.
var fullCal = ''; $(function() { fullCal = $('#fullcalendar').fullCalendar({ // options select: SelectDate, eventAfterRender: function(event, element) { // this does not work as it simply just keeps the last event in the DOM. element.siblings().remove() }, viewDisplay: UnselectDate // hides and clears the form, intended behavior }); }); function SelectDate(startDate, endDate, allDay, jsEvent, view) { $('#BijlesForm').show(); var BijlesEvent = {start: startDate, end: endDate, title: 'Bijles', allDay: false}; fullCal.fullCalendar('renderEvent', BijlesEvent); //fill the form }