2015-11-26 2 views
1

В событии dayClick я могу изменить CSS текущей ячейки, используя this, как показано на рисунке fullcalendar documentation. Например, мне просто нужно сделать $(this).css('background-color', 'red');Как я могу изменить css ячейки дня по дате?

Предполагая, что у меня есть дата, хранящаяся как мгновение, как можно сделать то же самое за пределами события dayClick?

+0

Вы имеете в виду изменение цвета события на полном календарном рендеринге? – IlGala

+0

Нет только ячейки дня '' DOM node. Нет связанных событий. – Billybobbonnet

ответ

2

Посмотрите на метод dayRender(). Я знаю, что ... Существует не так много документации ... Вот рабочая скрипку, как изменить цвет фона текущей даты и все 7 дней после текущей даты, используя это событие:

$(document).ready(function(){ 
 
    $('#calendar').fullCalendar({ 
 
    header: { 
 
     left: 'prev,next today', 
 
     center: 'title', 
 
     right: 'month,basicWeek,basicDay' 
 
    }, 
 
    defaultView: 'month', 
 
    dayRender: function (date, cell) { 
 
     var today = $.fullCalendar.moment(); 
 
     var end = $.fullCalendar.moment().add(7, 'days'); 
 
     
 
     if (date.get('date') == today.get('date')) { 
 
      cell.css("background-color", "red"); 
 
     } 
 
     
 
     if(date > today && date <= end) { 
 
      cell.css("background-color", "yellow"); 
 
     } 
 
     
 
    } 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<script src="https://cdn.jsdelivr.net/momentjs/2.10.6/moment.min.js"></script> 
 
<script src="https://cdn.jsdelivr.net/fullcalendar/2.0.1/fullcalendar.min.js"></script> 
 
<link href="https://cdn.jsdelivr.net/fullcalendar/2.0.1/fullcalendar.css" rel="stylesheet"/> 
 
<div id='calendar'></div>

Также обратите внимание на документацию moment.js, чтобы управлять объектами даты.

EDIT

Я полагаю, вы используете fullCalendar v2. Для v1 посмотрите here и here

+0

Я действительно использую V2. Как я могу повторно запустить 'dayRender()' по желанию? – Billybobbonnet

+0

Из документов: «Этот обратный вызов вызывается каждый раз, когда ячейка должна быть свежей визуализирована.», Поэтому вам нужно восстановить события с помощью ['refetchEvents()'] (http://fullcalendar.io/docs/event_data/ refetchEvents /) метод – IlGala

+0

Не работает. Я предполагаю, что ячейке требуется событие, которое нужно перезапустить. Я также попробовал ответ отсюда: http://stackoverflow.com/questions/10324311/re-draw-fullcalendar-on-the-fly, но он не работал ни в моем контексте (я использую метеорит). – Billybobbonnet

Смежные вопросы