jQuery FullCalendar插件不显示事件

时间:2011-08-23 18:10:22

标签: javascript jquery fullcalendar

我在CodeIgniter应用程序中使用FullCalendar plugin。我正在使用GET请求服务器端检索事件对象,并且使用与带有回调的events as a function example类似的方法在日历上不显示事件。我已经验证了GET请求正确返回json。

这是我的请求返回的json ......

[{"id":"1","title":"2011 Acura Integra (1)","start":1313996400,"color":"red"}, {"id":"15","title":"2011 Acura Integra (1)","start":1314774000,"color":"red"}]

我的电话如下......

    var year = $("#year").text();
    var month = $("#month").text();

    $maintenance_schedule_calendar_table = $("#vehicles_maintenance_schedule_calendar").fullCalendar({
        year: year,
        month: month -1,
        header: {
            left: 'prev,next today',
            center: 'title',
            right: ''
        },
        editable: true,
        disableResizing: true,
        events: function(start, end, callback) {
            var start_timestamp = Math.round(start.getTime() / 1000);
            var end_timestamp = Math.round(end.getTime() / 1000);
            var url = "/tripsys/new_admin/vehicles/get_maintenance_schedule_data/" + start_timestamp + "/" + end_timestamp;

            $.get(url, function(events) {
                callback(events);
            });
        }
    });

奇怪的是前一个调用正确地获取json并且回调似乎处理事件,因为如果我调用.fullCalendar('clientEvents')它会显示我传递给events方法的json,但它们不会呈现

但是,如果我将这个相同的json直接传递给我的初始FullCalendar调用,那么事件就会渲染......

    var year = $("#year").text();
    var month = $("#month").text();

    $maintenance_schedule_calendar_table = $("#vehicles_maintenance_schedule_calendar").fullCalendar({
        year: year,
        month: month -1,
        header: {
            left: 'prev,next today',
            center: 'title',
            right: ''
        },
        editable: true,
        disableResizing: true,
        events: [
            {"id":"1","title":"2011 Acura Integra (1)","start":1313996400,"color":"red"},
            {"id":"15","title":"2011 Acura Integra (1)","start":1314774000,"color":"red"}
        ]
    });

有没有人知道为什么第一个例子没有在我的日历上呈现事件?

1 个答案:

答案 0 :(得分:1)

原来这个问题是我用$ .get而不是$ .getJSON请求数据的原因

这是正确的电话......

    var year = $("#year").text();
    var month = $("#month").text();

    $maintenance_schedule_calendar_table = $("#vehicles_maintenance_schedule_calendar").fullCalendar({
        year: year,
        month: month -1,
        header: {
            left: 'prev,next today',
            center: 'title',
            right: ''
        },
        editable: true,
        disableResizing: true,
        events: function(start, end, callback) {
            var start_timestamp = Math.round(start.getTime() / 1000);
            var end_timestamp = Math.round(end.getTime() / 1000);
            var url = "/tripsys/new_admin/vehicles/get_maintenance_schedule_data/" + start_timestamp + "/" + end_timestamp;

            $.getJSON(url, function(events) {
                callback(events);
            });
        }
    });