Javascript jquery完整日历:回调';在'之后;日历已完全加载

Javascript jquery完整日历:回调';在'之后;日历已完全加载,javascript,jquery,callback,fullcalendar,Javascript,Jquery,Callback,Fullcalendar,Adam Shaw的jquery full calendar中是否存在在日历完全呈现后调用的回调??我想在该回调中调用clientEvents函数,以获取客户端的所有事件。我尝试在viewDisplay中执行此操作,但它在呈现事件之前被调用,客户端事件返回0个事件。实际上,您可以自己添加它。更新fullcalendar.js中的函数render,如下所示 function render(inc) { if (!content) { initialRender();

Adam Shaw的jquery full calendar中是否存在在日历完全呈现后调用的回调??我想在该回调中调用clientEvents函数,以获取客户端的所有事件。我尝试在viewDisplay中执行此操作,但它在呈现事件之前被调用,客户端事件返回0个事件。

实际上,您可以自己添加它。更新
fullcalendar.js
中的函数
render
,如下所示

function render(inc) {
    if (!content) {
        initialRender();
        trigger('complete', null, true);
    }else{
        calcSize();
        markSizesDirty();
        markEventsDirty();
        renderView(inc);
        trigger('complete', null, true);
    }
} 
并添加到初始调用回调函数中:

$('#calendar').fullCalendar({
         editable: true,
         complete: function() {alert('complete');}, 
或者,根据需要,您可以访问所有事件

    complete: function() {
        var events = $(this).fullCalendar('clientEvents');
        for(var i in events)
        {
            alert(events[i].title);
        }
    },

我知道这篇文章现在已经很老了,但是如果有帮助的话,你不需要像Cheery建议的那样修改原始来源(尽管他/她的答案也很有效)

您也可以只使用已就位的回调“加载”:

$('#calendar').fullCalendar({
   loading: function(bool) {
      if (bool){
         alert('I am populating the calendar with events');
      }
      else{
         alert('W00t, I have finished!');
         // bind to all your events here
      }
   }
);

这可能已经很老了,但是现在有一个官方的回调函数(在版本1.6中添加):。无需修改源代码。

viewRender事件就是这个问题的答案;加载仅适用于内容加载

任何人。。。。。我被困在这里:(thanx对于回复来说太多了,我会测试并发回,但我认为这正是我想要的needed@khizar它适用于初始调用,但检查事件更新和其他操作,因为它可能会再次触发-我没有深入研究代码。好的,我的最后期限很紧,我没有时间测试您的解决方案,从在我的帖子和你的答案发布的时候,我一直在寻找解决办法,作为一个完全临时的解决方案,我通过调用加载选项中的客户事件来完成我的工作,以等待事件完成抓取。但我仍然会接受你的答案,因为它看起来在逻辑上非常好:)我可以确认@Cheery的解决方案是有效的。你只需要使用插件的非最小化版本。我还要说:你不能使用此解决方案访问事件。:)如果你需要访问事件,你必须找到另一种方法。值得注意的是:只有当你的事件需要从某个地方加载时(例如,通过函数调用或URL),加载才有效。如果您只是将事件作为JSON向下传递,则当您调用外部URL以在日历上呈现数据时,加载将不会启动(至少从1.5.5开始)。我能够在检索数据时显示加载的GIF,并在加载后
bool
返回为false时使其消失。谢谢,效果很好!使用eventAfterAllRender,它似乎会在每次事件加载时触发。如果你只需要一次射击怎么办?是的,但是你可以在第一次射击时进行变量检查。例如:如果(hasAlreadyRun)返回;我就是这么做的。只要确保您的变量具有适当的作用域,这样它就不仅仅是使用它的函数的本地变量,然后在该函数再次运行之前被销毁。对于外部源
eventAfterAllRender
为每个源触发一次。我需要一个回调,当所有的源已经渲染或者一个特定的源已经完成渲染。我对此很不满意,但我想我必须在
eventAfterAllRender
中使用一个计数器,它计算我的源代码的数量,所以我知道一切都已完成渲染。