FullCalendar JS(没有事件时添加事件)

时间:2016-01-26 16:48:33

标签: javascript jquery fullcalendar

我正试图找到一种方法,即使在特定日期也没有。

所以例子:

我已经渲染了我的日历,但是有2天没有事件。所以在那一天我想添加一个说“已关闭”的事件。我尝试了多种方法但找不到合适的方法....

这是我现在的代码:

$('#calendar').fullCalendar({
        editable: false,
        events: event,
        firstDay: 1,
        eventRender: function (event, element, view) {
            $(element).tooltip({ title: event.description });
            $(element).each(function () { $(this).addClass('dateClass-' + event.start.date().toString()); $(this).attr('date-num', event.start.date().toString()); });
            if (view.name == "month") {

                console.info("DATE: " + event.start.date().toString());

                /*$('.fc-month-view').find('.fc-day-number').each(function () {
                    CellDates.push($(this).text());
                    if ($('table').hasClass('.dateClass-' + $(this).text())) {
                        console.info("Got an event!");
                    } else {
                        console.info("No event on that day!");
                    }
                });*/

                for (var i = 0; i < 40; i++) {
                    if ($(element).hasClass('dateClass-' + i)) {
                        console.info("Event: " + event.start.year().toString() + "-" + event.start.month().toString() + "-" + event.start.date().toString());
                    } else {
                        console.info("No Event: " + event.start.year().toString() + "-" + event.start.month().toString() + "-" + event.start.date().toString());
                        var _date = event.start.year().toString() + "-" + event.start.month().toString() + "-" + event.start.date().toString()
                        var _event = [{ "title": "Closed", "start" : _date}];
                        $('#calendar').fullCalendar('addEvent', _event)
                    }
                }

            }
        }
    });

它似乎不起作用......如果你们能帮助我找到解决方案。我需要在任何一个月没有任何活动的日子里关闭。

非常感谢你的帮助!

1 个答案:

答案 0 :(得分:0)

我的方法是在View Render Callback.中使用一个数组来表示当月的日期。在页面加载脚本中创建它。在回调中重置它。

calendarDays = [];

Event Render Callback中,我会查看每个事件,并将数组中的相应位置设置为true。

calendarDays[event.date()] = true;

Event After All Render Callback我会看一下这个月有多少天。每天检查阵列中的相应位置。如果它不存在,那么您当天没有活动,您可以添加新活动。