Jquery 切换完整日历视图时重新蚀刻事件

Jquery 切换完整日历视图时重新蚀刻事件,jquery,fullcalendar,Jquery,Fullcalendar,我在日历中使用了3个视图:月、agendaWeek和agendaDay。添加事件后,调用refetchEvents以显示新事件。如果我从agendaWeek或agendaDay添加一个事件,那么refetch当然会获取一周或一天的事件。如果我随后切换到月视图,我只有一周或一天的事件 我已尝试在viewDisplay上添加refetchEvents。问题是它在初始负载上运行,这会导致所有事件的重复。是否有一种方法可以阻止在日历加载期间调用refetchEvents 切换视图时是否有其他方法强制重新

我在日历中使用了3个视图:月、agendaWeek和agendaDay。添加事件后,调用refetchEvents以显示新事件。如果我从agendaWeek或agendaDay添加一个事件,那么refetch当然会获取一周或一天的事件。如果我随后切换到月视图,我只有一周或一天的事件

我已尝试在viewDisplay上添加refetchEvents。问题是它在初始负载上运行,这会导致所有事件的重复。是否有一种方法可以阻止在日历加载期间调用refetchEvents


切换视图时是否有其他方法强制重新蚀刻?

听起来是增强fullcalendar库本身的好主意-库可以为“viewChanged”甚至“viewChanged”事件提供回调函数。 这样的东西确实不存在,因为如果需要创建“AJAX深度链接”,还需要知道视图何时发生了更改


更新:如果在添加事件后更改日历的“lazyFetching”选项,会发生什么情况?

创建fullcalendar时,每当视图更改时,都会触发viewDisplay方法。从逻辑上讲,您可以将其用作viewChanged事件。例如:

$('#calendar').fullCalendar({
    ... 
    viewDisplay: function(view) { alert('viewDisplay(' + view + ')'); }
});
似乎从版本
1.6.3
开始,要使用的正确回调是
viewRender

$('#calendar').fullCalendar({
    ...
    viewRender: function(view, element) { alert('new view: ' + view.name); }
});

这不是一个完美的主意,只是增加了一个选择

$('.fc-month-button').click(function () {

});

$('.fc-agendaWeek-button').click(function () {

});