我在Fullcalendar上遇到困难。基本上,我必须使用ajax逐月获取事件,否则由于事件非常复杂,渲染日历的时间太长。我可以获取事件并将它们添加到日历中没有问题,但是问题是,当您添加新的数据源时,所有事件都可以正常显示,但是dayRender事件永远不会触发,因此我的自定义背景和qtip不会按应有的方式应用因为它们仅在dayRender事件中应用。
有一个“销毁然后渲染日历”(重绘日历)选项可以触发dayRender事件,但是由于某些原因,如果我这样做:
$('#calendar').fullCalendar('destroy');
$('#calendar').fullCalendar('render');
日历已销毁,但从未重建->没有任何反应(也没有警告或错误消息)。
日历以类似于
$('#calendar').fullCalendar( 'addEventSource', myevents );
的方式初始化之后,是否可以调用dayRender事件?也许您可以提供一些替代解决方案?
解答:
好的,所以经过数小时的尝试,我相信我找到了一种解决方法:
$('#calendar').fullCalendar('prev'); $('#calendar').fullCalendar('next');
由于某种原因,它将调用dayRender事件。
最佳答案
好的,所以经过数小时的尝试,我相信我找到了一种解决方法:
首次初始化日历时,您将创建一个 future 事件数组,并向其中添加1条虚拟记录(否则它将不会创建日历)。
使用此数组初始化日历。
创建ajax调用以为日历添加新的数据源,并将事件推送到您在第一步中创建的数组中。
将事件推入主数组后,执行以下代码:
$('#calendar').fullCalendar('prev');
$('#calendar').fullCalendar('next');
由于某种原因,它将调用dayRender事件。