我想禁止fullcalendar在其他月份的单元格中显示事件。我想我可以用eventRender事件做到这一点。
$('#calendar').fullCalendar({
events: $.fullCalendar.myFeed(),
eventRender: function (event, element) {
if (event.start.getMonth() != ????)
$(element).hide();
}
});
我无法弄清楚要替换什么????获取日历的当前月份。有人有提示吗?
答案 0 :(得分:3)
我想没有办法在这个事件中引用父日历。 “this”指的是事件对象。我没有意识到视图也作为第三个参数传递。我能够使用以下代码完成此任务:
$('#calendar').fullCalendar({
events: $.fullCalendar.myFeed(),
eventRender: function (event, element, view) {
if (event.start.getMonth() != view.start.getMonth())
return false;
}
});
答案 1 :(得分:2)
如果您使用带有年视图的完整日历(https://github.com/tpruvot/fullcalendar)。 您不能在年视图上使用view.start.getMonth()。 我使用了一个通过eventAfterRender的小技巧:
eventAfterRender: function (event, element, view) {
var col=element.closest('td').index()+1;
var $cellh=element.closest('table').find('thead td:nth-child('+col+')');
if ($cellh.hasClass('fc-other-month') == true)
element.css('visibility','hidden')
},
答案 2 :(得分:0)
你可以使用一些自定义样式
.fc-other-month {
background: white !important;
}
.fc-row .fc-bg {
z-index: 5;
pointer-events: none;
}
此处的解决方案:使用背景白色的fc-other-month
日使用curent-month
天。
答案 3 :(得分:0)
eventRender: function(event, element) {
var view = $('#calendar').fullCalendar('getView');
if (event.start.month() == view.intervalStart.month()) {
element.addClass("bg-blue");
}
},