我试图在单击事件时从FullCalendar 4.2中的任何/所有事件中删除CSS类(“选定”)。想法是一次只能选择一个事件。我可以使用eventClick处理程序将类添加到事件中,并在Stackoverflow上获得Rodrigo Medeiros的一些帮助(谢谢Rodrigo!)。但是现在我似乎无法使用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调用上方。在此测试中,删除了“ selected”类,但立即将其与单击的所有其他事件一起立即添加回该事件。因此,如果您单击5个单独的事件,那么所有这5个事件都将具有“选定”类。
我也尝试过getEvents(),但是会引发错误(“未捕获的TypeError:calendar.getEvents(...)不是函数”)。我将以下代码放在eventClick处理程序中的ajax调用上方。
calendar.getEvents()(function(event) {
event.setProp('classNames', '');
});
任何帮助,不胜感激!