Fullcalendar で過去のイベントを「グレーアウト」するためにこのソリューションを実装しようとしていますが、うまくいきません。ただし、私は Javascript にあまり精通していないので、愚かな間違いを犯していると思います。
提案されたコードを fullcalendar.js の 4587 行付近の daySegHTML(segs) の呼び出し内に入れています。
関数の最初の var リストの末尾に最初の 2 行を追加しました (なぜなら、そうではないと私は考えました)。つまり、次のようになります。
...
var leftCol;
var rightCol;
var left;
var right;
var skinCss;
var hoy = new Date;// get today's date
hoy = parseInt((hoy.getTime()) / 1000); //get today date in unix
var html = '';
...
次に、そのすぐ下に、ループ内に他の 2 行を追加しました。
for (i=0; i<segCnt; i++) {
seg = segs[i];
event = seg.event;
classes = ['fc-event', 'fc-event-skin', 'fc-event-hori'];
if (isEventDraggable(event)) {
classes.push('fc-event-draggable');
}
unixevent = parseInt((event.end.getTime()) / 1000); //event date in Unix
if (unixevent < hoy) {classes.push('fc-past');} //add class if event is old
if (rtl) {
if (seg.isStart) {
classes.push('fc-corner-right');
}
...
このコードを実行すると、カレンダーが表示され、イベントが表示されず、次のエラー メッセージが表示されます: Uncaught TypeError: Cannot call method 'getTime' of null
参照されている「null」は、どうやら event.end.getTime() です。しかし、何がうまくいかないのか、または物事がどのように実行されているのかを正確に理解しているかどうかはわかりません。書かれているとおり、それはうまくいくようです。コードのこの時点で、event.end には有効な IETF タイムコードが含まれていることがわかりますが、getTime() で実行しようとすると、何らかの理由で「存在しません」?
これは私にとってミッション クリティカルな調整ではありませんが、それでもいいでしょう。何が起こっているのか、何が間違っているのかを理解したいと思います! どんな助けでも大歓迎です!