FullCalendar 4.2如何在单击事件时从所有事件中删除CSS类?

时间:2020-02-17 19:26:27

标签: javascript jquery fullcalendar

我试图在单击事件时从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', '');
});

任何帮助,不胜感激!

0 个答案:

没有答案