2014-02-10 243 views
3

我正在使用最新的fullcalendar,並想知道如果有人能告訴我如何根據其值改變事件的背景顏色?例如,如果value是Yes,那麼bg是綠色,如果value是No,那麼bg是紅色的(我的Description字段是包含Yes或No值的實際字段)。這裏是我的代碼:Fullcalendar - 基於值更改事件顏色

$(document).ready(function() { 
    var date = new Date(); 
    var d = date.getDate(); 
    var m = date.getMonth(); 
    var y = date.getFullYear(); 

    var calendar = $('#calendar').fullCalendar({ 
    editable: true, 
    header: { 
    left: 'prev,next today', 
    center: 'title', 
    right: 'month,agendaWeek,agendaDay' 
    }, 

    events: "events.php", 

    // Convert the allDay from string to boolean 
    eventRender: function(event, element, view) { 
    if (event.allDay === 'true') { 
    event.allDay = true; 
    } else { 
    event.allDay = false; 
    } 
    element.find('.fc-event-title').append("<br/>Successful?: <span class='myClass'><b>" + event.description + "</b></span>"); 
    }, 
    selectable: false, 
    selectHelper: true, 
    select: function(start, end, allDay) { 
    var title = prompt('Event Title:'); 
    var url = prompt('Type Event url, if exits:'); 
    if (title) { 
    var start = $.fullCalendar.formatDate(start, "yyyy-MM-dd HH:mm:ss"); 
    var end = $.fullCalendar.formatDate(end, "yyyy-MM-dd HH:mm:ss"); 
    $.ajax({ 
    url: 'add_events.php', 
    data: 'title='+ title+'&start='+ start +'&end='+ end +'&url='+ url , 
    type: "POST", 
    success: function(json) { 
    alert('Added Successfully'); 
    } 
    }); 
    calendar.fullCalendar('renderEvent', 
    { 
    title: title, 
    start: start, 
    end: end, 
    allDay: allDay 
    }, 
    true // make the event "stick" 
    ); 
    } 
    calendar.fullCalendar('unselect'); 
    }, 

    editable: false, 
    eventDrop: function(event, delta) { 
    var start = $.fullCalendar.formatDate(event.start, "yyyy-MM-dd HH:mm:ss"); 
    var end = $.fullCalendar.formatDate(event.end, "yyyy-MM-dd HH:mm:ss"); 
    $.ajax({ 
    url: 'update_events.php', 
    data: 'title='+ event.title+'&start='+ start +'&end='+ end +'&id='+ event.id , 
    type: "POST", 
    success: function(json) { 
    alert("Updated Successfully"); 
    } 
    }); 
    }, 
    eventResize: function(event) { 
    var start = $.fullCalendar.formatDate(event.start, "yyyy-MM-dd HH:mm:ss"); 
    var end = $.fullCalendar.formatDate(event.end, "yyyy-MM-dd HH:mm:ss"); 
    $.ajax({ 
    url: 'update_events.php', 
    data: 'title='+ event.title+'&start='+ start +'&end='+ end +'&id='+ event.id , 
    type: "POST", 
    success: function(json) { 
    alert("Updated Successfully"); 
    } 
    }); 

} 

    }); 

}); 

謝謝。

+0

雖然每個事件對象,你可以基於像標題條件添加顏色參數:本[「事件名稱」],啓動:這個[「日期」],終點:這[「日期」],ID:這個[ '日期'],顏色:'綠色' –

回答

8

以下是一個示例,您可以使用eventRender http://arshaw.com/fullcalendar/docs/event_rendering/eventRender/。如果描述等於「是」,則將元素背景顏色設置爲黑色。

$('#calendar').fullCalendar({ 
      ... 
      eventRender: function(event, element) { 
       if(event.description == "yes") { 
        element.css('background-color', '#000'); 
       } 
      }, ... 
+0

非常感謝! – user1060641

+0

@MarCrazyness你會做什麼來檢查一個空的描述(例如)?我用'if試試了它(event.description ==「」){};'但是這導致我接收到「undefined」 – Flouks

+0

你能給我發一個小提琴@Flouks嗎?你的event.description也可以爲null? – MarCrazyness