FullCalendar на вкладках jQuery изначально не загружается через ajax

Я использую свою собственную пользовательскую функцию для заполнения событий:

$('#calendar').fullCalendar({
  events:getCalendarData
});

И у меня есть календарь в качестве одной из моих вкладок с использованием плагина вкладок jQuery (вкладки создаются с помощью $('#tabs').tabs();).

Настройка работает, за исключением того, что я обнаружил, что при начальной загрузке страницы календарь делает асинхронный запрос (я вижу это в Firebug), но если я переключусь на вкладку, на которой отображается календарь, он будет пусто (интерфейс в порядке, но событий нет). Если я перейду к следующему месяцу и обратно, данные будут отображаться нормально. Также, если я делаю календарь на ПЕРВОЙ вкладке, то он работает нормально! Таким образом, кажется, что только первоначальный запрос не отображает события, возможно, потому, что вкладка скрыта во время ее загрузки.

Если я загружаю страницу, перехожу на вкладку календаря (события не отображаются), и мне приходится вручную вызывать

$('#calendar').fullCalendar( 'render' ); 

затем он загрузит события. Я пытался поместить этот вызов рендеринга ПОСЛЕ вызова обратного вызова fullCalendar, но не в кости.

callback(events);
$('#calendar').fullCalendar( 'render' );

Похоже, одним из вариантов может быть привязка

$('#calendar').fullCalendar( 'render' );

до события показа вкладки, но тогда это немного беспорядочно.

Любой совет?

-Брайан


person bhendel    schedule 21.12.2010    source источник


Ответы (1)


вы должны поместить вызов render в событие show вкладки. это то, что предлагается здесь: http://arshaw.com/fullcalendar/docs/display/render/

person arshaw    schedule 22.12.2010