Я пытаюсь удалить класс CSS ('selected') из любых / всех событий в FullCalendar 4.2 при нажатии на событие. Идея заключается в том, что одновременно может быть выбрано только одно событие. Я смог добавить класс к событию, используя обработчик eventClick и некоторую помощь от Rodri go Medeiros здесь, в Stackoverflow (спасибо, Rodri go!). Но сейчас я не могу удалить его, используя jQuery removeClass. Вот мой JS ....
var calendarEl = document.getElementById('calendar');
var calendar = new FullCalendar.Calendar(calendarEl, {
plugins: [ 'dayGrid', 'timeGrid', 'list' ],
header: {
left: 'prevYear,prev,next,nextYear',
center: 'title',
right: 'today dayGridMonth,timeGridWeek,timeGridDay,listWeek'
},
defaultView: 'dayGridMonth',
eventLimit: true,
views: {
month: {
eventLimit: 2
}
},
eventClick:function(info){
var id = info.event.extendedProps.timeslotid;
$.ajax({
url: 'index.php?option=com_cases&task=shifts.timeslotform&id='+id,
type: 'post',
dataType: 'html',
async: true,
success: function(response){
if (response) {
$('a.fc-day-grid-event.selected').removeClass('selected'); //here's the issue
info.event.setProp('classNames', 'selected')
$('#sbcontent').empty();
$('#sbcontent').append(response);
}
}
});
},
events: 'index.php?option=com_cases&task=shifts.buildevents',
eventTimeFormat: { // like '14:30:00'
hour: 'numeric',
minute: '2-digit',
hour12: true
}
});
calendar.render();
Я пробовал несколько вариантов селекторов JQuery, но, похоже, ни один из них не работает. Я также попытался переместить строку removeClass над вызовом ajax. В этом тесте «выбранный» класс удаляется, но затем он сразу же добавляется обратно к событию вместе со всеми другими событиями, по которым щелкнули. Поэтому, если вы нажмете 5 отдельных событий, все 5 из этих событий будут иметь класс «selected».
Я также пробовал getEvents (), но выдает ошибку («Uncaught TypeError: calendar.getEvents ( ...) это не функция '). Я помещаю следующий код прямо над вызовом ajax в обработчике eventClick.
calendar.getEvents()(function(event) {
event.setProp('classNames', '');
});
Любая помощь очень ценится!