Próbuję zaimplementować this solution do "szarej" przeszłych wydarzeń w Fullcalendar, ale nie mam szczęścia. Nie jestem jednak zbyt dobrze zaznajomiony z Javascriptem, więc zakładam, że robię głupie błędy.Zmień kolor poprzednich wydarzeń w Fullcalendar
byłem oddanie sugerowany kod do fullcalendar.js wewnątrz zaproszenia do daySegHTML (Segs) wokół linii 4587.
dodałem dwie pierwsze linie na końcu początkowej listy var danej funkcji (Dlaczego nie, pomyślałem) Więc coś takiego:
...
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 = '';
...
Następnie, tuż poniżej, dodałem dwie inne linie wewnątrz pętli:
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');
}
...
Running ten kod rezultaty wyrenderowany kalendarz bez wyświetlanych zdarzeń i komunikat o błędzie: Uncaught TypeError: Nie można wywołać metody "getTime" o wartości null
Wskazana wartość "null" to, najwyraźniej, event.end.getTime(). Ale nie jestem pewien, czy rozumiem, co dokładnie idzie źle, ani jak rzeczy są wykonywane. Jak napisano, wygląda na to, że powinno działać. W tym momencie kodu, z tego, co mogę powiedzieć, event.end zawiera poprawny kod czasowy IETF, ale z jakiegoś powodu jest "tam", gdy próbuję uruchomić go przez getTime()?
To nie jest dla mnie kluczowa zmiana, ale nadal będzie miło - i chciałbym zrozumieć, co się dzieje i co robię źle! Każda pomoc bardzo doceniona!
Awesome! Próbowałem pracować z wywołania zwrotnego, ale nie udało mi się uzyskać zrozumienia składni. (Tak jak mówiłem, kotlety Javascript zawstydzająco brakuje!) - niestety, ten (z odpowiednią podstawiania "sometime()", oczywiście) wyrzuca "Uncaught TypeError: Can not call method" getTime "o wartości null" z jakiegoś powodu. .. O ile mi wiadomo, nie jest to lubienie calev.end.getTime(). – Jeff
Tak, zdefiniuj porównanie czasu/daty, jak chcesz. Jeśli calev.end jest pusty, prześledź go za pomocą debuggera; ma to być właściwość obiektu Event: [link] (http://arshaw.com/fullcalendar/docs/event_data/Event_Object/) – MaxD
Ah - wygląda na to, że ścigałem trochę czerwonego śledzia. Pierwsze (z kilku) wydarzeń w kalendarzu, o którym mowa, było wydarzeniem "całodniowym", a więc właściwość calev.end najwyraźniej miała wartość "null", co zatrzymało dalszą realizację kodu. Wydobywam wydarzenia z kalendarza Google ... czy jest coś jeszcze, co powinienem wykorzystać jako test, by złapać całodzienne wydarzenia, które miały miejsce przed "dzisiaj"? – Jeff