我使用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已经在做的事情的净效果。然后,您可以将额外的网络调用保存到数据库中。