【问题标题】:view.element.find not working in fullcalendar v.2view.element.find 在 fullcalendar v.2 中不起作用
【发布时间】:2014-09-25 07:00:06
【问题描述】:

我有 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

另一个问题是,这个函数只改变事件开始的背景,而不是事件的整个日期

【问题讨论】:

    标签: jquery 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

    【讨论】:

    • 我需要更改当天的背景,而不是事件。检查这个 => jsfiddle.net/gx2Lu06f。它适用于 1.6.4 版本,但不适用于 2.1
    • 检查更新的答案一个 JSfiddle 可以满足您的需求。
    • 你有解决我其他问题的方法吗?我想将背景更改为整个活动,而不仅仅是活动开始的那一天。例如在jsfiddle.net/k4p1od5z,您可以在事件 3 中看到,我希望背景也应用到 9 月 19 日
    猜你喜欢
    • 2014-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多