我正在尝试实施此解决方案以在 Fullcalendar 中“灰显”过去的事件,但我没有任何运气。不过,我不太精通 Javascript,所以我认为我犯了一些愚蠢的错误。
我一直将建议的代码放入 fullcalendar.js 中,在第 4587 行附近的 daySegHTML(segs) 调用中。
我在函数的初始 var 列表的末尾添加了前两行(为什么不,我想)——所以是这样的:
...
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');
}
...
运行此代码会导致呈现的日历不显示任何事件并显示错误消息:未捕获的 TypeError:无法调用 null 的方法“getTime”
显然,所指的“null”是 event.end.getTime()。但我不确定我是否理解到底出了什么问题,或者事情是如何执行的。正如所写,它似乎应该工作。在代码的这一点上,据我所知,event.end 包含一个有效的 IETF 时间码,但由于某种原因,当我尝试通过 getTime() 运行它时它“不存在”?
这对我来说不是一个关键任务调整,但仍然很好——我也想了解发生了什么以及我做错了什么!非常感谢任何帮助!