FullCalendar:我无法在月视图中调整事件大小

Dav*_*uez 5 ajax jquery fullcalendar

我通过AJAX调用从服务器获取事件列表.我将"可编辑"选项设置为"true",但它仅适用于agendaDay和agendaWeek视图,而不适用于月视图.为什么?这是代码:

$('#calendar').fullCalendar({
        header: {
            right: "agendaDay,agendaWeek,month prev,next"
        },
        firstDay: 1,
        fixedWeekCount: false,
        contentHeight: 700,
        timeFormat: "HH:mm",
        displayEventEnd: {
            month: false,
            agendaWeek: false,
            agendaDay: false,
            'default':true
        },
        axisFormat: "HH:mm",
        slotEventOverlap: false,
        editable: true,

        eventSources: [
            {   // 1st group: Miscellanea
                events: function(start,end,timezone,callback){

                    callAjax("Miscellanea",callback);
                },
                color: "#086A87",

            },{ // 2nd group: project init
                events: function(start,end,timezone,callback){

                    callAjax("Project",callback);
                },
                color: "#B40404"
            }
        ]
});
Run Code Online (Sandbox Code Playgroud)

这是我的函数调用Ajax:

function callAjax(type,callback){

    $.ajax({
        type: "GET",
        url: "/projects/{{project.id}}/get_events/",
        dataType: "json",
        data: {"data":type},
        success: function(response){
            data = eval("(" + response + ")")

            var events = [];

            for(i=0;i<data.length;i++){

                events.push({
                    id: data[i].pk,
                    title: data[i].fields['title'],
                    start: data[i].fields['start'],
                    end: data[i].fields['end'],
                    className: "event",
                    defaultTimedEventDuration: "00:30:00"
                });
            }
            callback(events);
        }
    });

}
Run Code Online (Sandbox Code Playgroud)

正如我之前所说,除了在月视图中调整大小外,所有工作都很好,我无法想象问题是什么.救命?

Dav*_*uez 6

为了在月视图中调整事件的大小,必须将其设置为"allday"事件.要设置"allday"事件,从数据库获取事件时,必须区分它们.我在数据库中有一个名为allday的布尔列.然后,allday根据值设置属性.这就是AJAX调用它们的区别:

function callAjax(type,callback){
    $.ajax({
        type: "GET",
        url: "/projects/{{project.id}}/get_events/",
        dataType: "json",
        data: {"data":type},
        success: function(response){
            data = eval("(" + response + ")")

            var events = [];

            for(i=0;i<data.length;i++){

                if(!data[i].fields['allday']){
                    events.push({
                        id: data[i].pk,
                        title: data[i].fields['title'],
                        start: data[i].fields['start'],
                        end: data[i].fields['end'],
                        className: "event",
                        defaultTimedEventDuration: "00:30:00"
                    });
                }else{
                    events.push({
                        id: data[i].pk,
                        title: data[i].fields['title'],
                        start: data[i].fields['start'],
                        end: data[i].fields['end'],
                        allDay: true,
                        className: "event",
                        defaultTimedEventDuration: "00:30:00"
                    });
                }
            }

            callback(events);
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

默认情况下,"Allday"事件在两天的0:00:00开始和结束.天不需要连续."Allday"活动可持续一天以上.这就是你可以调整大小的原因.