FullCalendar v3自定义level参数排序失效:allDay与非allDay事件被分隔
FullCalendar 3 按自定义level参数全局排序事件(忽略allDay分组)
在FullCalendar 3中,默认事件排序逻辑会先把allDay: true和allDay: false的事件分成两组,再分别应用eventOrder规则——这就是你设置eventOrder: "level"后仍出现分隔的核心原因,哪怕开启eventOrderStrict: true,也只能保证同组内排序严格,无法打破分组壁垒。
要实现所有事件按level全局排序,直接使用eventOrder的函数形式,完全自定义排序逻辑:
$('#calendar').fullCalendar({ // 其他配置项... eventOrder: function(a, b) { // 按level升序排序,需要降序就调换return值顺序 if (a.level < b.level) return -1; if (a.level > b.level) return 1; // level相同时,可选按事件开始时间补充分组(按需调整) return a.start.isBefore(b.start) ? -1 : 1; }, // 其他配置项... });
关键说明:
- 这个排序函数会跳过FullCalendar默认的分组逻辑,直接对所有事件做全局比较,完全以
level参数为排序依据,不再区分allDay属性。 - 确保所有事件对象的
level属性类型一致(比如都是数字),避免因类型不匹配导致排序异常。
内容的提问来源于stack exchange,提问作者Muriel Rupp
相关产品推荐
相关产品推荐

