2014-09-25 95 views
0

我已經使用eventRender函數來更改特定類名的日背景。view.element.find無法在fullcalendar v.2中工作

eventRender: function (event, element, view) {    
    if (event.className == 'booked') { 
     var dateString = $.fullCalendar.formatDate(event.start, 'yyyy-MM-dd'); 
     view.element.find('.fc-day[data-date="' + dateString + '"]').css('background-color', '#FAA732');       
    }    
}, 

此功能在fullcalendar 1.6.4上正常工作,但不在版本2.1中(我已經將日期轉換爲時刻)。

Uncaught TypeError: Cannot read property 'find' of undefined fullcalendar 

的另一個問題是,這個功能只能改變事件啓動的背景下,不是一個事件

回答

1
$.fullCalendar.formatDate(event.start, 'yyyy-MM-dd'); 

不再需要並且在第2不起作用*整個日期。這是因爲event.start已經是momentjs對象。你可以簡單地使用

event.start.format("YYYY-MM-DD"); 

至於view.element,它是由view.el[0]更換,所以你應該使用

$(view.el[0]).find('.fc-day[data-date=' + dateString + ']') 

改變特定的一天。

eventRender將成爲

eventRender: function(event, element, view) { 
    var dateString = event.start.format("YYYY-MM-DD"); 

    $(view.el[0]).find('.fc-day[data-date=' + dateString + ']') 
       .css('background-color', '#FAA732'); 
}, 

有關完整代碼檢查JSFiddle demo

+0

我需要改變一天的背景,而不是事件。勾選這個=> http://jsfiddle.net/gx2Lu06f/。它在1.6.4版本上工作,但不是2.1 – l1th1um 2014-09-28 14:01:12

+0

檢查更新後的答案是一個JSfiddle,它可以滿足您的需求。 – 2014-09-28 18:23:34

+0

很好....謝謝 – l1th1um 2014-09-29 04:29:28