未捕获的TypeError:无法在fullCalendar中读取null的属性“top”

时间:2018-05-16 09:45:55

标签: fullcalendar momentjs

对于fullCalendar,我编写了以下代码:

$('#mycalendar').fullCalendar(
            {
                allDaySlot:false,
                slotDuration: '00:30:00' ,  
                //slotMinutes: '120',           
                lang: currentLangCode,
                minTime: '4:00am',
                maxTime: '24:00pm',
                slotEventOverlap: true,
                slotLabelFormat:'h(:mm)a',
                showAgendaButton: true,
                columnFormat: { month: 'ddd', week: 'ddd M/D', day: 'ddd M/D' },
                timeFormat: 'H:mm',
                defaultView: 'listWeek',
                eventLimit: true,
                theme:false,
                editable: true,
                contentHeight:'auto',
                weekends: false ,
                //timezoneParam: 'America/Los_Angeles',
                //ignoreTimezone: false,
                header:
                {
                    left: 'prev,next today',
                    center: 'title',
                    // right: 'agendaWeek'
                    right: 'month,agendaWeek,agendaDay,listWeek'
                },
                views: {
                    listDay: { buttonText: 'Day' },
                    listWeek: { buttonText: 'Week' },
                    month: {
                        columnFormat: 'ddd'
                    },
                    agenda: {
                        columnFormat: 'ddd'
                    }
                },

我接受了AgendaWeek和agendaDay的错误:

enter image description here

我正在使用:

jQuery JavaScript Library v3.3.1 FullCalendar v3.9.0

1 个答案:

答案 0 :(得分:1)

这是因为minTimemaxTime的值无效且无法解析为momentJS对象。 fullCalendar依赖momentJS来处理日期和时间。因此,日历不知道从何处开始显示(因此日历的位置是#34;顶部"因此是错误消息)。

将它们设置为

minTime: '04:00',
maxTime: '24:00',

代替。

请点击此处查看工作演示:http://jsfiddle.net/sbxpv25p/581/

请参阅http://momentjs.com/docs/#/parsing/string/以获取momentJS可识别的有效日期/时间格式列表。你会看到" am"和" pm"不是公认的物品。在任何情况下,它们都是不必要的,因为您已经以24小时格式指定了时间。