如何将 selectOverlap 属性 应用于周视图和日视图而不是全日历的月视图

How to apply selectOverlap property to week and day view but not to month view of fullcalendar

我正在使用 fullcalendar 插件,只是想问一下如何将 selectOverlap: false 属性 应用到周视图和日视图而不是月视图。

例如,如果我将我的视图从每周更改为每月,那么 selectOverlap 应该为真,否则如果我从每月更改为任何其他视图,selectOverlap 应该为假,但请记住我是没有重新加载整个页面。

我想要这个是因为如果我在月视图中有一些数据并且我尝试 select 这个月它应该是 select 并且这里它不起作用因为整个月都在考虑重叠.

所以我希望它应该 select 可以在月视图中使用,并且可以像在周视图和日视图中那样工作(不可能重叠)。

我尝试在本地存储中添加视图并放置条件

selectOverlap: localStorage.getItem('viewName') === "month" ? true : false

所以这适用于月视图或周和日视图,但不能同时适用于两者

selectOverlap: localStorage.getItem('viewName') === "month" ? true : false

这里 localStorage.getItem('viewName') 给出了正确的视图名称,但由于这些属性仅在页面加载时应用,因此我无法在更改视图时进行更改,我想要 selectOverlap 属性 月份视图应为 true,其余视图应为 false,而无需一次又一次地重新加载页面。

你提到

since these properties applied only at the time of page load it is not possible for me to change in on changing the view

这是事实,但是已经有办法避免这个问题。根据 documentation for selectOverlap,您可以提供回调函数而不是固定值。每次发生重叠时,fullCalendar 都会执行此操作,因此它可以动态评估当时的情况。

这样您就可以ask fullCalendar what the current view is并据此做出决定。例如:

selectOverlap: function(event) {
  return ($('#calendar').fullCalendar('getView').name == "month");
}

每当视图类型为 "month" 时,这将 return 为真,从而允许重叠继续进行。