我試圖實施this solution以在Fullcalendar中「灰掉」過去的事件,但我沒有任何運氣。儘管如此,我並不太熟悉Javascript,所以我認爲我犯了一些愚蠢的錯誤。更改Fullcalendar中過去事件的顏色
我已經把建議代碼到fullcalendar.js,呼籲daySegHTML(SEGS)內圍繞線4587.
我加在函數的最初變種列表的末尾前兩行(爲什麼不,我想通) - 所以是這樣的:
...
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 = '';
...
然後,僅低於,我添加了循環內的其他兩行:
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:無法調用null的方法'getTime'
被引用的「null」顯然是event.end.getTime()。但我不確定我是否明白到底發生了什麼問題,或者如何執行。正如所寫,似乎它應該起作用。在代碼中的這一點,event.end包含一個有效的IETF時間碼,但由於某種原因,當我嘗試通過getTime()運行時,它「不存在」?
這對我來說不是一項任務關鍵性的調整,但仍然不錯 - 我想了解發生了什麼事以及我做錯了什麼!任何幫助非常感謝!
太棒了!我曾嘗試使用回調函數,但無法完全掌握語法。 (就像我說過的,Javascript缺乏令人尷尬的缺乏!) - 不幸的是,這(當然有一個適當的「sometime()」替換)出於某種原因踢出了「Uncaught TypeError:Can not call method'getTime'of null」。 ..據我可以告訴,它不喜歡calev.end.getTime()。 – Jeff
是的,根據需要定義時間/日期比較。 至於calev.end爲空,請使用調試器跟蹤它;它應該是Event對象的一個屬性: [鏈接](http://arshaw.com/fullcalendar/docs/event_data/Event_Object/) – MaxD
啊 - 它看起來像我正在追逐一點紅鯡魚。相關日曆中的第一個(幾個)事件是「全天」事件,因此calev.end屬性顯然爲「空」,從而停止了代碼的進一步執行。我正在從Google日曆中提取事件......還有其他事情我應該用來作爲測試來捕捉「今天」之前發生的所有日常事件? – Jeff