Fullcalendar显示每天的事件计数



我使用FullCalendar,希望在每天的所有视图中显示每天的事件计数。

示例:

<div class="fc-day-number">1</div>

更改为:

<div class="fc-day-count">X</div>
<div class="fc-day-number">1</div>

请找到一张截图作为示例:链路

提前感谢

我希望这能帮助到别人,但不知道这是否是你想要的确切答案。

要获取一天中发生的事件数,可以使用以下代码:

$('#calendar').fullCalendar( 'clientEvents', function(eventObj){
    if (eventObj.start.isSame('2014-11-21')) {
        return true;
    } else {
        return false;
    }
}).length;

根据完整的日历文档,您可以使用筛选函数clientEvents搜索事件。

函数中的if语句使用包含在fullcalendar 2.0 中的moment.js比较日期

月视图中的样本EventsPerDay变量给出计数

 eventRender: function (event, element, view) { 
 $(element).each(function () { $(this).addClass('dateClass-' + event.start.getDate().toString()); $(this).attr('date-num', event.start.getDate().toString()); });
                   if (view.name == "month") {
                       // $('.shifts,.tasks,.shiftOut,.shiftIn').hide();
                       var CellDates = [];
                       var EventDates = [];
                       var EventCount = 0, i = 0;
                       $('.fc-view-month').find('.fc-day-number').each(function () {
                           CellDates[i] = $(this).text();
                           //                           alert( $(this).text());
                           i++;
                       });
                       for (j = 0; j < CellDates.length; j++) {
                           EventsPerDay = $(".fc-view-month>div>.dateClass-" + CellDates[j]).length;}}

我在名为的方法中向fullcalendar.js添加了一行

函数fetchEventSource(源,fetchID)

    function fetchEventSource(source, fetchID) {
    _fetchEventSource(source, function(events) {
        if (fetchID == currentFetchID) {
            if (events) {
                if (options.eventDataTransform) {
                    events = $.map(events, options.eventDataTransform);
                }
                if (source.eventDataTransform) {
                    events = $.map(events, source.eventDataTransform);
                }
                // TODO: this technique is not ideal for static array event sources.
                //  For arrays, we'll want to process all events right in the beginning, then never again.
                for (var i=0; i<events.length; i++) {
                    events[i].source = source;
                    normalizeEvent(events[i]);
                }
                cache = cache.concat(events);
            }
            pendingSourceCnt--;
            if (!pendingSourceCnt) {
                reportEvents(cache);
            }
        }
        // add this next line here to dump the running count
        $("#someElement").html("There are " + cache.length + " events scheduled for this view");
    });
}

这具有充分利用fullcalendar已经在做的事情的净效果。然后,您可以将额外的网络调用保存到数据库中。

相关内容

  • 没有找到相关文章

最新更新