2015-07-22 9 views
0

Я пытаюсь динамически изменять цвета событий на основе представления, которое отображается в полном календарном режиме.Изменение цвета события FullCalender на основе вида

Когда я заполняю события в календаре с помощью ajax, я передаю цвет и textColor динамически с сервера.

 if event.service_area: 
     if event.service_area.pk == 1: 
      color = '#4986e7' 
     elif event.service_area.pk == 2: 
      color = '#ff7537' 
     elif event.service_area.pk == 3: 
      color = '#f691b2' 
    else: 
     color = '#00a19c' 

    start = event.start_datetime.strftime("%Y-%m-%d %H:%M:%S") 

    event_slug = { 
     'title': event.summary, 
     'start': start, 
     'description': event.description, 
     'location': event.location, 
     'g_event_id': event.google_event_id, 
     'status': event.status, 
     'event_id': event.id, 
     'color': '#fff', 
     'textColor': color, 
    } 

В «месяц» зрения, я хочу, чтобы сохранить цвет, который я изначально прошла в формате JSON событий (цвет текста, белый фон), но при переходе на «basicWeek» или вид «agendaDay» Я хочу цвета для переключения (белый текст, цвет фона). Когда я переключаю представления при первом запуске, но затем любое последующее переключение представлений приводит к бесконечному переключению цветов.

eventRender: function(event, element, view) { 
    if (view !== 'month') { 
     var color = event.color; 
     var text = event.textColor; 

     event.color = text; 
     event.textColor = color; 
    } 
} 

Как я могу настроить это событие визуализации сценария только переключают цвета, которые я первоначально переданные когда представление я меняю от это «месяц» до «agendaDay» или «basicWeek», а затем вернуться к оригиналу цвета при переключении на «месяц»?

+0

добавить класс в элемент ... и использовать правила css на основе классов представления – charlietfl

ответ

0

Ты используешь цветы на неправильном сайте.

От documentation:

  • событие является объект Event, который пытается быть оказаны.
  • элемент - это новый элемент jQuery, который будет использоваться для рендеринга. Он уже заполнен правильным текстом времени/заголовка.

Таким образом, применить цвета к элементу переменной , а не к события. Таким образом, ваши исходные цвета не будут меняться в фактическом событии объект, только в визуализированном объекте.

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