每月 View 的日期槽中的所有事件均根据开始时间排序,即事件开始时间为 0-23 小时,0 小时在上,23 小时在下。
但我想在事件任务列表顶部和之后显示事件(event.IsActive == true
) 任务,非事件(event.IsActive == false
) 任务将按开始时间 0-23 排序显示。
例子:
- ActiveTask-1 中午 12:00
- ActiveTask-2 凌晨 3:00
- ActiveTask-3 21:45PM
- InactiveTask-1 12:00AM
- InactiveTask-2 上午 7:00
- InactiveTask-3 23:30PM
这在 fullCalendar 中可能吗?
最佳答案
您的请求将需要直接修补完整日历代码。 这是强制性的,因为 fullcalendar 不会向外界公开此功能。
我确实用 1.4.11 版本检查了我的响应,但是查看 github 上的 1.5 分支表明它应该是相同的。
要打补丁的函数是segCmp
,(源版本在src/util.js
中找到,或者直接在fullcalendar.js文件的末尾附近找到)
原来的版本是:
function segCmp(a, b) {
return (b.msLength - a.msLength) * 100 + (a.event.start - b.event.start);
}
打过补丁的版本应该是这样的:
function segCmp(a, b) {
var activeDiff = ((b.event.IsActive || false) - (a.event.IsActive || false));
if (activeDiff != 0) return activeDiff;
return (b.msLength - a.msLength) * 100 + (a.event.start - b.event.start);
}
我只是检查事件是否具有不同的 IsActive 状态并返回差异,如果没有差异则保留先前的算法。 (请注意 b - 差异,因为您希望 IsActive:true 在 IsActive:false 之前)
请注意,segCmp
在拆分/排序事件时被调用,因此将应用于所有 View 。
最好的问候,
帕斯卡
关于javascript - FullCalendar:如何在 MonthView 的日期排序和显示事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5525126/