Я использую jquery и fullcalendar для планирования действий. Когда пользователи выбирают временной интервал, справа от календаря отображается форма, где они могут вводить дополнительные сведения.
С помощью обратного вызова «select» я отображаю временное событие в календаре, чтобы у моих пользователей была визуальная обратная связь при заполнении формы.
Однако, если они неправильно выбрали временной интервал, они могут выбрать новый временной интервал. Это, однако, отображает второе (и возможно третье, четвертое ...) событие в календаре.
Я думал, что смогу использовать обратный вызов 'eventAfterRender (event, element)' для element.siblings (). Remove (), но это не удалось, так как eventAfterRender вызывается для каждого события в календаре с каждым renderEvent.
Возможно, мне не хватает обратного вызова или метода, но, как я вижу, нет простого способа удалить "несохраненное" событие.
Ниже приведен пример кода.
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
}