我正在使用全日历插件,只是想问如何将selectOverlap: false
属性应用于周和日视图,而不是月视图。
例如,如果我每周更改视图,那么selectOverlap
应该是真的,或者如果我从月更改为任何其他视图selectOverlap
应该是假的,但请记住,我不会重新加载整个页面。
我想要这个,因为如果我在月视图中有一些数据并且我尝试选择月份,它应该是可选的,在这里它不起作用,因为重叠正在考虑整个月。
所以我希望它应该在月视图中是可选的,并且可以像在周和日视图中一样工作(无法重叠)。
我尝试在本地存储中添加视图并放置条件
selectOverlap: localStorage.getItem('viewName') === "month" ? true : false
所以这适用于月视图或周日视图,但不能同时适用于两者
selectOverlap: localStorage.getItem('viewName') === "month" ? true : false
在这里,此localStorage.getItem('viewName')
给出了正确的视图名称,但由于这些属性仅在页面加载时应用,因此我无法在更改视图时进行更改,我希望selectOverlap
属性对于月视图应为 true,对于视图的其余部分应为 false,而无需一次又一次地重新加载页面。
你提到过
由于这些属性仅在页面加载时应用,因此不是 我可以更改视图
这是真的,但已经有一种方法可以避免这个问题。根据 selectOverlap 的文档,您可以提供回调函数而不是固定值。然后,每次发生重叠时,fullCalendar 都会执行此操作,因此它可以动态评估当时的情况。
通过这种方式,您可以询问 fullCalendar 当前视图是什么,并据此做出决定。例如:
selectOverlap: function(event) {
return ($('#calendar').fullCalendar('getView').name == "month");
}
只要视图类型为"月",这将返回 true,从而允许重叠继续进行。