我不希望用户能够在我的日历中创建allDay事件。我希望日历通过单击日期将视图从月份视图更改为agendaDay视图,但每次单击日期时,日历都会将视图更改为agendaDay,但它会尝试创建allDay事件。
$('#calendar').fullCalendar({
header: {
left: 'prev,next today',
center: 'title',
right: 'month,agendaWeek,agendaDay'
},
dayClick: function(date,allDay, jsEvent, view) {
if (allDay) {
// Clicked on the entire day
$('#calendar').fullCalendar('gotoDate',date)
$('#calendar').fullCalendar('changeView', 'agendaDay')
}
view = $('#calendar').fullCalendar('getView');
},
selectable: function(){
if(view.name=='agendaDay' ){
return true;
}else{
return false;
}
},
selectHelper: true,
select: function(start, end) {
var title = prompt('Event Title:');
var eventData;
if (title) {
eventData = {
title: title,
start: start,
end: end,
};
$('#calendar').fullCalendar('renderEvent', eventData, true);
}
$('#calendar').fullCalendar('unselect');
}
});
您正在处理dayClick
、selectable
和select
;而这可以通过仅处理select
:来实现
select: function(start, end, jsEvent, view) {
if (view.name=='month') {
$('#calendar').fullCalendar('changeView', 'agendaDay');
$('#calendar').fullCalendar('gotoDate', start)
} else {
var title = prompt('Event Title:');
var eventData;
if (title) {
eventData = {
title: title,
start: start,
end: end
};
$('#calendar').fullCalendar('renderEvent', eventData, true);
}
}
$('#calendar').fullCalendar('unselect');
}
请参阅http://jsfiddle.net/wijgerden/t81qtupz/用于使用FullCalendar v2.1.1的JSFiddle演示;请注意,这仍然允许用户在agendaWeek
和agendaDay
视图上创建全天事件。在month
视图中,选择日期会将视图切换到agendaDay
(多选时为第一天),同时仍允许单击事件。