首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >更改FullCalendar月视图上的默认事件排序顺序

更改FullCalendar月视图上的默认事件排序顺序
EN

Stack Overflow用户
提问于 2014-03-07 22:18:13
回答 4查看 14.6K关注 0票数 4

我有一个完整的日历,可以在月份视图中显示多个日历。不同的日历是用颜色编码的。我在所有视图上都有按名称排序的日历,但是当它们在FullCalendar显示中呈现时,它们是按事件的标题排序的。

有什么方法可以覆盖当天的默认排序吗?

EN

回答 4

Stack Overflow用户

发布于 2015-12-08 19:28:41

如果您想完全覆盖allDaySlot、month、basics视图的开始日期排序。例如,根据颜色对它们进行排序。

1.将eventOrder初始化为颜色。(您正在使用的html/php文件)

代码语言:javascript
运行
复制
eventOrder: 'color,start'

2.更改compareSegs函数。(fullcalendar.js)

代码语言:javascript
运行
复制
// original function
compareSegs: function(seg1, seg2) {
    return seg1.eventStartMS - seg2.eventStartMS || // earlier events go first
        seg2.eventDurationMS - seg1.eventDurationMS || // tie? longer events go first
        seg2.event.allDay - seg1.event.allDay || // tie? put all-day events first (booleans cast to 0/1)
        compareByFieldSpecs(seg1.event, seg2.event, this.view.eventOrderSpecs);
}

// custom function
compareSegs: function(seg1, seg2) {
    if(this.view.name=="basicWeek"){ // ordering events by color in ListView
    return seg2.event.allDay - seg1.event.allDay || // tie? put all-day events first (booleans cast to 0/1)
        compareByFieldSpecs(seg1.event, seg2.event, this.view.eventOrderSpecs);
    }
    else{
        return seg1.eventStartMS - seg2.eventStartMS || // earlier events go first
                    seg2.eventDurationMS - seg1.eventDurationMS || // tie? longer events go first
                    seg2.event.allDay - seg1.event.allDay || // tie? put all-day events first (booleans cast to 0/1)
                    compareByFieldSpecs(seg1.event, seg2.event, this.view.eventOrderSpecs);
    }
}

在这种情况下,我只想在"basicVeek“视图中按颜色对事件进行排序。然后,我删除了eventStartMS和eventDurationMS测试。

删除:

代码语言:javascript
运行
复制
seg1.eventStartMS - seg2.eventStartMS || // earlier events go first
seg2.eventDurationMS - seg1.eventDurationMS || // tie? longer events go first
票数 4
EN

Stack Overflow用户

发布于 2015-09-10 19:24:40

嗨,

是的,您可以使用fullcalendar 2.4.0版本中名为eventOrder的新事件覆盖默认的日期排序。

默认情况下,FullCalendar决定将持续时间较长且开始时间较早的事件排序在其他事件之上。但是,事件通常具有完全相同的开始时间和持续时间,对于全天事件尤其如此。默认情况下,发生这种情况时,将按标题的字母顺序对事件进行排序。eventOrder提供了覆盖此行为的功能

票数 3
EN

Stack Overflow用户

发布于 2017-06-09 08:17:54

代码语言:javascript
运行
复制
eventOrder: "eventProperty"

更多信息:https://fullcalendar.io/docs/event_rendering/eventOrder/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22252552

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档