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

时间:2019-07-11 09:53:15

标签: jquery fullcalendar fullcalendar-3

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

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

这是我想要的,因为如果我在月份视图中有一些数据,并且尝试选择月份,则该月份应该是可选的,在这里它不起作用,因为考虑了整个月份的重叠。

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

我试图将视图添加到本地存储中并放入条件

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

因此,它既适用于月视图,又适用于周和日视图,但不能同时适用于两者

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

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

1 个答案:

答案 0 :(得分:0)

您提到了

  

因为这些属性仅在页面加载时才应用,所以没有   我可能会改变视角

这是正确的,但是已经有避免这种问题的方法。根据{{​​3}},您可以提供回调函数而不是固定值。每次发生重叠时,fullCalendar都会执行此操作,因此它可以在那一刻动态评估情况。

这样,您可以documentation for selectOverlap并据此做出决定。例如:

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

只要视图类型为“月”,此方法都将返回true,从而使重叠继续进行。