Я работаю над веб-приложением, которое использует закладки меню (fg.menu) и jQuery. Они отлично работают. Теперь я пытаюсь применить плагин dataTables к таблицам, которые загружаю (через Ajax) в своих вкладках. Таблицы создаются на стороне сервера (JSON сейчас не вариант) и сидят в статических файлах, которые я загружаю в вкладки. Таблицы имеют развернутые ссылки на другие таблицы. Они загружаются в текущую вкладку с помощью этой обработки в моей вкладке опции события:weird jQuery dataTables проблема вывода
load: function(event, ui)
{
//alert ("load is called");
$('a', ui.panel).live('click', function()
{
// now load the href into the tab
$(ui.panel).load(this.href);
// alert ("live click is called");
// Set up the dataTable
oTable = $('.my_table').dataTable(
{
"sScrollX": "100%",
"bPaginate": false,
"bJQueryUI": true,
"bInfo": false,
"bDestroy": true,
"bRetrieve": true,
"sDom": '<"H"r>t'
});
return false;
});
} // end of load:
Я также инициализировать DataTables через загрузчик ссылок меню (имеет другое событие), который работает хорошо, как это делает любую вкладка первоначальной выбор рендеринг.
Когда я нажимаю ссылки в таблице, суб-таблица будет отображаться на вкладке, но dataTable не вступает в силу. Я заметил, что когда я перейду к новой вкладке, таблица будет кратковременно мигать с представлением dataTable перед загрузкой новой вкладки. Итак, я добавил предупреждение (прокомментированное в коде выше), чтобы увидеть, как были запущены события, и вот и вот, dataTables начали правильно рисовать. Когда я удаляю предупреждение, он возвращается к простой таблице.
Я пробовал перемещать инициализацию dataTable во всем, что я могу себе представить, вызывать fnDraw() явно в разных местах и реплицировать initTable init везде, но ничто не делает его рендерингом, кроме предупреждения.
Я использую dataTables 1.7.3, jQuery 1.4.2 и jQuery UI 1.8.5 в Firefox 3.6.12.
Я предполагаю, что это какая-то проблема, но я не знаю ничего, что предупреждает об этом, что заставит визуализацию dataTables. Есть идеи? Мне что-то нелепо очевидно? :-)