2016-08-17 9 views
0

Как применить цвет фона события, когда события отображаются во всплывающем окне событий, как показано ниже. В настоящее время я динамически применяю цвет фона внутри вызова eventAfterRender(). Как вы можете видеть, он работает - за исключением случаев, когда события отображаются во всплывающем окне.FullCalendar, применить цвет backgroud события к всплывающему значению события?

enter image description here

var initialize_calendar; 
var current_path = window.location.pathname; 
initialize_calendar = function(){ 
    $('.calendar').each(function(){ 

     var calendar = $(this) 
     calendar.fullCalendar({ 
      header: { 
       left: 'prev, next today', 
       center: 'title', 
       right: 'month, agendaWeek, agendaDay' 
      }, 
      selectable: true, 
      selectHelper: true, 
      editable: true, 
      eventLimit: true, 
      events: current_path + ".json", 
      eventAfterRender: function(event, element) { 
       var current_user = event.current_user_id 
       var driver = event.driver_id 
       var date = event.start 
       var date_format = date.hour() === 0 ? "dddd, MMMM Do YYYY" : "dddd, MMMM Do YYYY, h:mm:ss a" 
       console.log(date.format(date_format)); 
       // console.log(date.hour()) 
     $(element).popover({ 
        html: true, 
        trigger: "hover", 
        container: 'body', 
        title: event.carpool, 
        content: '<strong>Event:</strong> ' + event.title + '<br>' + 
             '<strong>Start:</strong> ' + event.start.format(date_format) + '<br>' + 
             '<strong>Driver:</strong> ' + event.driver + '<br>' + 
             '<strong>Place:</strong> ' + event.place + '<br>' + 
             '<strong>Address:</strong> ' + event.address, 
        placement:'top' 
       }) 

       if(current_user === driver) { 
        element.css('background-color', 'green'); 
       } else { 
        element.css('background-color', 'blue'); 
       } 
      } 

     }); 
    }) 
}; 
$(document).on('ready', initialize_calendar); 

О, как вы могли бы ожидать - поповер не работает для событий внутри предельного всплывающего окна либо.

Стили и слушатели событий не применяются к событиям внутри предельного события всплывающего окна ...

+2

Для цветной части проблемы - попробуйте раскрасить ее с помощью eventRender вместо eventAfterRender. Кажется, нужно работать - может быть, возникла проблема на странице проекта fullcalendar по этой проблеме? [eventAfterRender fiddle] (https://jsfiddle.net/umwy5srp/) и [скрипт eventRender] (https://jsfiddle.net/umwy5srp/1/) Поппер может быть исправлен, перемещая его в eventRender, а не Попробуй это. – smcd

+0

красота, eventRender делает трюк. – matthewalexander

+2

из любопытства, почему бы не назначить цвет самому событию и позволить fullCalendar обрабатывать его (используя свойство event.color) вместо того, чтобы возиться с CSS? – K48

ответ

1

Используйте eventRender вместо eventAfterRender.

+0

Это ответ на вопрос - я знаю, потому что я его реализовал, и он решил мою проблему. Я разместил его так, чтобы его можно было принять, и билет можно было закрыть. – matthewalexander

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