fullCalendar自定义事件函数抛出不是函数错误

时间:2014-10-14 13:09:06

标签: javascript jquery fullcalendar

使用以下功能喂养日历:

$('#calendar').fullCalendar( {
        header: {
            left: 'prev,next today',
            center: 'title',
            right: 'month,agendaWeek,agendaDay' },
        editable: true,
        eventLimit: true,
        events: function(callback) {
            $.ajax({
                url: '/appointments.json',
                dataType: 'json',
                success: function(doc) {
                    var events = [];
                    $(doc).find('event').each(function() {
                        events.push({
                            title: $(this).attr('title'),
                            start: $(this).attr('start') // will be parsed
                        });
                    });
                    callback(events);
                }
            });

但我一直收到这个错误:

object is not a function //callback(events) line

在浏览器的js控制台上。知道问题可能是什么吗?

1 个答案:

答案 0 :(得分:4)

假设您正在使用FullCalendar 2. *,如documentation中所述,events的签名为

  

功能(开始,结束,时区,回调){}

名称为callback的参数实际上是start,它是momentjs个对象。要解决您的问题,您必须将参数添加到您的函数中,因此您的代码将是:

events: function( start, end, timezone, callback ) {

只要events(传递给callback)具有documentation中定义的正确格式和参数,此功能就会有效。

编辑:

如果要根据json属性的值设置每个事件的背景颜色,则应使用eventRender。 检查此jsfiddle,其中在事件呈现时设置每个事件的背景。

正如在jsfiddle中所证明的那样,你可以根据json提供的值有条件地改变背景。