我使用FullCalendar 5的事件源。我需要包含事件源之一的事件的单元格不可点击。
我意识到我可以使用eventClassNames或className为给定的事件源添加类,但是该类被添加到事件文本中,而不是单元格中,并且关于事件源的任何内容似乎都没有作为单元格级别的选择器存在。
总而言之,日历被用于预订。如果日期出现在给定的事件源中,则不可用,因此单元格不应该是可单击的。我该怎么做呢?
您可以对select
回调中的现有事件执行检查- https://fullcalendar.io/docs/select-callback
所以检查是否有事件在日期范围内,和一些自定义属性来标识您希望检查的源。
当你导入事件时,输入。
sourceType: "a"
/sourceType: "b"
然后在选择,做一个检查,这里阻止选择如果一个事件的sourceType "b"在单元格内找到。
select: function( selectionInfo ) {
if(calendar.getEvents().filter(x => (x.start >= selectionInfo.start && x.end <= selectionInfo.end && x.extendedProps.sourceType == "b").length > 0) ) {
calendar.unselect();
selectionInfo.jsEvent.stopPropagation();
return false;
}
// your handler if selection is allowed goes here
}