我正在使用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/docs/agenda/defaultEventMinutes/
有人知道如何做到这一点吗?
以下是我当前的fullcalendar功能:
以下是我当前的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();
}
}
});
end
属性,否则上面的代码将无法正常工作。 - Avatar