Javascript JQuery Fullcalendar-在添加新数据源时触发dayRender

Javascript JQuery Fullcalendar-在添加新数据源时触发dayRender,javascript,jquery,fullcalendar,Javascript,Jquery,Fullcalendar,我对完整的日历有困难。基本上,我必须使用ajax逐月获取事件,否则由于事件非常复杂,渲染日历的时间太长。我可以获取事件并将其添加到日历中没有问题,但问题是,当您添加新数据源时,所有事件都会呈现良好状态,但dayRender事件从未触发,因此我的自定义背景和QTIP不会像应该的那样应用,因为它们仅在dayRender事件期间应用 有一个选项可以先销毁日历,然后再进行渲染。请重新绘制日历以触发dayRender事件,但由于某些原因,如果我正在执行以下操作: $('#calendar').fullCa

我对完整的日历有困难。基本上,我必须使用ajax逐月获取事件,否则由于事件非常复杂,渲染日历的时间太长。我可以获取事件并将其添加到日历中没有问题,但问题是,当您添加新数据源时,所有事件都会呈现良好状态,但dayRender事件从未触发,因此我的自定义背景和QTIP不会像应该的那样应用,因为它们仅在dayRender事件期间应用

有一个选项可以先销毁日历,然后再进行渲染。请重新绘制日历以触发dayRender事件,但由于某些原因,如果我正在执行以下操作:

$('#calendar').fullCalendar('destroy');
$('#calendar').fullCalendar('render');
日历正在被销毁,但从未重新创建->无任何事件发生,也没有警告或错误消息

是否有一种方法可以在日历以类似于$'calendar'.fullCalendar'addEventSource',myevents;'的方式初始化后调用dayRender事件

或者你可以提供一些替代方案

答复:


好的,经过几个小时的尝试,我相信我已经找到了解决办法:

当您第一次初始化日历时,您将创建一个未来事件数组,并向其中添加一条虚拟记录,否则它将无法创建日历。 使用此数组初始化日历。 创建ajax调用,为日历添加新的数据源,并将事件推送到第一步创建的数组中。 将事件推入主阵列后,执行以下代码: $'calendar'.fullCalendar'prev'; $'calendar'.fullCalendar'next'


由于某种原因,这将调用dayRender事件。

好的,在尝试了几个小时不同的事情之后,我相信我找到了一个解决方法:

当您第一次初始化日历时,您将创建一个未来事件数组,并向其中添加一条虚拟记录,否则它将无法创建日历。 使用此数组初始化日历。 创建ajax调用,为日历添加新的数据源,并将事件推送到第一步创建的数组中。 将事件推入主阵列后,执行以下代码:

$('#calendar').fullCalendar('prev');
$('#calendar').fullCalendar('next');

由于某种原因,这将调用dayRender事件。

uFlock的后续操作。。。我也有同样的问题。这个函数是在AJAX检索数据库模型事件后调用的,这些事件会被扩展,它们表示重复。然后我使用发布的hack uFlock,它解决了我所面临的相同问题

函数gsearchRender\u calendardata{ var dest=$gsearch content.tab[数据选项卡='gsearch-tab-calendar']。事件con; var calendar=$dest.fullCalendar'getCalendar'; var method=$gsearch content[name='gsearch-method'].val; var ctx=方法分割/,/[0]; calendar.removeEventSourcegsearch; calendar.addEventSource{ id:'gsearch', 颜色:ctx==‘正在发生’?‘绿色’:‘白色’, textColor:“黑色”, 可编辑:false, 事件:函数开始、结束、时区、回调{ //var period=this.constraints.eventManager.currentPeriod; var raw=ExpandOccupingEventsData.results,开始,结束; 回调; } }; //calendar.refetchEventSources'gsearch'; calendar.prev; 日历。下一步; }