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]{ '—'[ 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)
我正在寻找相同的东西,对于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)
您可以在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)