javascript - FullCalendar:如何在 MonthView 的日期排序和显示事件?

标签 javascript jquery fullcalendar

每月 View 的日期槽中的所有事件均根据开始时间排序,即事件开始时间为 0-23 小时,0 小时在上,23 小时在下。

但我想在事件任务列表顶部和之后显示事件(event.IsActive == true) 任务,非事件(event.IsActive == false ) 任务将按开始时间 0-23 排序显示。

例子:

  1. ActiveTask-1 中午 12:00
  2. ActiveTask-2 凌晨 3:00
  3. ActiveTask-3 21:45PM
  4. InactiveTask-1 12:00AM
  5. InactiveTask-2 上午 7:00
  6. 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/

相关文章:

javascript - jQuery fullcalendar 在 IE9 中不显示事件

javascript If语句不起作用

javascript - 从 extjs 版本 4.0.7 升级到 4.1.1 的问题

javascript - 将本地 JSON 加载到 AngularJS 中的 Jasmine/Karma 单元测试中

javascript - 将 HTMLCollection 的内容附加到 Body

jquery - jQuery 1.4 有什么新功能?

javascript - 获取元素的具体索引

php - 网站上有现成的埃塞俄比亚日历吗?

jquery - FullCalendar 是否有 'revert' 函数

javascript - ng2-smart-table 删除后不绑定(bind)