JS Fullcalendar如何禁用allDay事件

JS Fullcalendar how to disable allDay events?

本文关键字:allDay 事件 何禁用 Fullcalendar JS      更新时间:2023-09-26

我不希望用户能够在我的日历中创建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');
    }
});

您正在处理dayClickselectableselect;而这可以通过仅处理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演示;请注意,这仍然允许用户在agendaWeekagendaDay视图上创建全天事件。在month视图中,选择日期会将视图切换到agendaDay(多选时为第一天),同时仍允许单击事件。