如何使用arshaw fullcalendar v2.3.0在agendaDay视图中灰显非工作日

我使用的是最新版本的arshaw fullcalendar(版本2.3.0),并且有一个日历需要显示活动工作日和小时的方案。

我用这个做了这个:

businessHours: { start: '08:00', end: '17:00', dow: [2,3,4,5,6,0] // Monday is not a working day }, 

在“议程周刊”视图中,它清楚地显示了非工作日“灰色”的工作日。 就我而言,星期一

在此处输入图像描述

但是,当我进入agendaDay视图时,星期一,没有定义为工作日显示没有灰色的部分,整个一天是白色的,使它看起来像一个工作日。

在此处输入图像描述

如果当天没有指定为工作日,那么在agendaDay视图中的整天不应该显示为灰色吗?

参考: http : //fullcalendar.io/docs/display/businessHours/

我认为这是一个错误,但我创建了一个解决方法。 当fullcalendar位于agendaDay视图中且当前日期不在DateOfWeek数组中时,它会创建后台事件。

 $('#calendar').fullCalendar({ businessHours: { start: '08:00', end: '17:00', dow: [0, 2, 3, 4, 5, 6] }, viewRender: function (view, e) { var bh = view.options.businessHours, startDate = view.start; if (view.type === "agendaDay" && bh.dow.indexOf(startDate.day()) === -1) { $('#calendar').fullCalendar('renderEvent', { start: moment(startDate), end: moment(view.end), rendering: 'background', className: 'fc-nonbusiness' }, false); $('#calendar').fullCalendar('renderEvent', { start: moment(startDate), allDay: true, rendering: 'background', className: 'fc-nonbusiness' }, false); } } }); 

有一些事情可以改进:

  • 选择器$('#calendar')可以是通用的。
  • 当您多次访问该日期时, .fullCalendar('renderEvent',将追加多个背景事件。

的jsfiddle