2010-10-29 7 views
0

Я работаю над веб-приложением, которое использует закладки меню (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. Есть идеи? Мне что-то нелепо очевидно? :-)

ответ

0

Хорошо, я, кажется, нашел обходное решение. Сначала я попытался выполнить инициализацию dataTable в каждом из моих html-файлов, содержащих фрагменты таблицы. Это не сработало, когда я впервые попробовал, но когда я попробовал еще раз, это сработало (не знаю, почему, но я все равно это сделаю. Это событие/проблема рендеринга все еще меня беспокоит, но по крайней мере сейчас я не придется беспокоиться об этом для этого приложения. Затем: получить кнопку «Назад» для отслеживания не только вкладок, но и ссылок на контент внутри вкладок :-)

Смежные вопросы