Fullcalendar clientEvents长度为零

Zor*_*che 2 fullcalendar

在根据来自URL的信息加载页面和日历之后尝试突出显示特定事件时,我了解到我已经获得了使用updateEvent的事件对象.我还了解到使用clientEvents是你应该这样做的方式.当我尝试使用时,clientEvents我只是简单地得到一个空数组.文档和来源似乎同意,如果我不提供可选的参数,那么我应该回到我日历上当前所有内容的数组.

<script type='text/javascript' src='https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js'></script>
<script type='text/javascript' src='https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.18/jquery-ui.min.js'></script>
<script type='text/javascript'>
$(document).ready(function() {

  $('#calendar').fullCalendar({
    defaultView: 'agendaWeek',
    header: {
      left: 'prev,next today',
      center: 'title',
      right: 'month,agendaWeek,agendaDay',
    },
  });

  $('#calendar').fullCalendar('addEventSource',
    { url: 'https://www.example.org/combinedcalendar/feed/json.php',
      dataType: 'jsonp'});

  console.log($('#calendar').fullCalendar('clientEvents').length);

});
</script>
<div id='calendar'></div>
Run Code Online (Sandbox Code Playgroud)

javascript控制台中记录的值是0;

Zor*_*che 6

在我撰写这个问题并测试出来的时候,我意识到首先应该是显而易见的.$('#calendar').fullCalendar('addEventSource',...);使用ajax 的调用是异步的.因此,在事件数据实际下载并添加到日历之前clientEvents,对控制台的记录发生了.

我将我的日志记录移动到fullCalendar 加载函数,该函数在加载启动或完成时触发.

$('#calendar').fullCalendar({ 
  loading:function(isLoading,view){
    if (!isLoading)
    {
      console.log($('#calendar').fullCalendar('clientEvents').length);
    }
  },
  ...
});
Run Code Online (Sandbox Code Playgroud)