私のタスクの要件は、すべてのイベントが整数である特別な優先順位を持つように変更されました。数値が大きいほど、重要性が高くなります。
年:
// Old function, this won't sort based on importance first!
function segCmp(a, b) {
return (b.msLength - a.msLength) * 100 + (a.event.start - b.event.start);
}
新しい:
function segCmp(a, b) {
var priorityDiff = ((a.event.priority || 0) < (b.event.priority || 0)) ? 1 : ((b.event.priority || 0) < (a.event.priority || 0)) ? -1 : 0;
if(priorityDiff != 0) return priorityDiff;
return (b.msLength - a.msLength) * 100 + (a.event.start - b.event.start);
}
これを使用したい場合は、イベントJSONも次のようになります。
{
allDay: false,
color: "#7BD148",
id: "1",
key: "1",
start: "2013-01-28 13:07:00",
title: "test event",
url: "http://google.se",
priority: 10
},
{
allDay: false,
color: "#7BD148",
id: "2",
key: "2",
start: "2013-01-28 12:07:00",
title: "test event 2",
url: "http://google.se",
priority: 5
},
ご覧のとおり、2番目のイベントは以前にスケジュールされていますが、コードが追加されると、2つが優先度順に並べられます。したがって、最初のイベントが最初に実行され、2番目のイベントがそれに続きます。
それが私がそれを解決した方法です、優先順位は整数であり、それらが同じであるか存在しない場合(null /未定義)を除いて、それでソートしようとしています。最高の整数によるソート。
その関数はfullCalendar.jsにあります。