view.element.find在fullcalendar v.2中不起作用

时间:2014-09-25 07:00:07

标签: jquery fullcalendar

我使用eventRender函数来更改特定类名的日期背景。

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 个答案:

答案 0 :(得分: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