jQuery FullCalendar-丢弃事件的默认结束时间

Ose*_*eer 3 javascript jquery fullcalendar

我使用FullCalendar能够将外部事件放到日历上:http://arshaw.com/js/fullcalendar-1.5.2/demos/external-dragging.html

删除新事件时,它具有开始时间但没有结束时间.似乎所有这些事件都是默认的"全天"事件.我尝试将allDay回调更改为false:http://arshaw.com/fullcalendar/docs/dropping/drop/

......但它没有帮助.我想把它放到日历上新事件被放到的地方,它的结束时间设置为下降时间后30分钟(即我的defaultEventMinutes的设置) http://arshaw.com/fullcalendar/文档/议程/ defaultEventMinutes /

有人知道怎么做吗?

这是我当前的fullcalendar函数:

$('#calendar').fullCalendar({
        header: {
            left: 'prev,next today',
            center: 'title',
            right: 'agendaWeek,agendaDay'
        },

        events: {
            url: 'json-events.php',
            type: 'POST',
            data: {

            },
            error: function() {
                alert('there was an error while fetching events!');
            },

        },

        allDaySlot: false,
        defaultView: 'agendaWeek',
        slotMinutes: 15,
        firstDay: '<?php echo $config->week_start; ?>',
        minTime: '<?php echo $config->day_start; ?>',
        maxTime: '<?php echo $config->day_end; ?>',
        defaultEventMinutes: 30, 
        aspectRatio: 1.1, 

        titleFormat: {
            month: 'MMMM yyyy',  
            week: "MMMM dd[ yyyy]{ '&#8212;'[ MMMM] dd, yyyy}", 
            day: 'dddd MMM dd, yyyy'    
        },

        columnFormat: {
            month: 'ddd',    // Mon
            week: 'ddd M/dd', // Mon 9/07
            day: 'dddd M/dd'  // Monday 9/07
        },

        editable: true,
        droppable: true, 
            drop: function(date, allDay) { 

            var originalEventObject = $(this).data('eventObject');
            var copiedEventObject = $.extend({}, originalEventObject);

            copiedEventObject.start = date;
            //copiedEventObject.allDay = allDay; // Can I make this 30min by default drop?
            copiedEventObject.end   = (date.getTime() + 1800000)/1000;
            copiedEventObject.group_id = $(this).attr("name"); // Group ID

            addEvent(copiedEventObject); // Add the event to the db

            $('#calendar').fullCalendar('renderEvent', copiedEventObject, true);

            if ($('#drop-remove').is(':checked')) {
                $(this).remove();
            }               

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

Yur*_*uri 8

我正在寻找相同的东西,对于FullCalendar v2,我发现了这个:

defaultTimedEventDuration

没有指定结束值的定时事件对象的回退持续时间.

持续时间,默认:'02:00:00'(2小时)

如果事件没有指定结束,则在呈现时它将显示为此持续时间.

除非forceEventDuration设置为true,否则事件的实际结束将保持未设置状态.

此设置仅影响allDay等于false的事件.对于全天事件,请使用defaultAllDayEventDuration.

所以你只需要做这样的事情,默认持续时间为30分钟.

$('#calendar').fullCalendar({ 
    defaultTimedEventDuration: '00:30:00',
    forceEventDuration: true,
    ...
    ...
});
Run Code Online (Sandbox Code Playgroud)


Mr.*_*mes 5

您可以在drop函数中设置已删除事件的结束时间.需要注意的一点是,对于完整日历,时间将以秒为单位进行测量.

var arrayOfEvents = [];

$('#calendar').fullCalendar({
    ...
    drop: function(date) {
        ...
        // retrieve the dropped element's stored Event Object
        var originalEventObject = $(this).data('eventObject');

        // we need to copy it, so that multiple events don't have a reference to the same object
        var copiedEventObject = $.extend({}, originalEventObject);

       // assign it the date that was reported
       copiedEventObject.start  = date;
       copiedEventObject.end    = (date.getTime() + 1800000)/1000; // put your desired end time here
       copiedEventObject.allDay = false;

       // Push the event into the array
       arrayOfEvents.push(copiedEventObject);
       ...
    },
    ...
)};
Run Code Online (Sandbox Code Playgroud)