2010-10-29 32 views
0

我正在使用菜單(fg.menu)和jQuery UI選項卡的Web應用程序。這些工作很好。我現在試圖將dataTables插件應用於我在我的選項卡中加載的表格(通過Ajax)。這些表格是在服務器端生成的(JSON現在不是一個選項),並且位於我加載到標籤中的靜態文件中。這些表格具有到其他表格的向下鑽取鏈接。這些獲得通過這個事件在我的標籤選項處理加載到當前標籤:奇怪的jQuery數據表呈現問題

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: 

我也初始化通過菜單鏈接加載器(具有不同的事件)的數據表,工作正常,如是否有任何初始選項卡中選擇渲染。

當我單擊表中的鏈接時,子表將顯示在選項卡中,但dataTable不生效。我注意到,當我點擊一個新的選項卡時,表格會在加載新選項卡之前短暫閃爍dataTable渲染。因此,我添加了警報(在上面的代碼中註釋掉),以查看事件是如何觸發和注視的,dataTable開始正確渲染。當我刪除警報時,它會回到普通表格。

我試着移動dataTable init到處都能想到,明確地在各個地方調用fnDraw(),並且隨處複製dataTable init,但似乎沒有任何東西使得它只顯示警報。

我在Firefox 3.6.12中使用dataTables 1.7.3,jQuery 1.4.2和jQuery UI 1.8.5。

我猜這是某種事件問題,但我不知道任何警報會強制dataTables呈現發生。有任何想法嗎?我錯過了一些愚蠢明顯的東西嗎? :-)

回答

0

好的,我似乎找到了一種解決方法。我最初嘗試在包含表分段的每個html文件中執行dataTable init。當我第一次嘗試時它沒有工作,但是當我再次嘗試時,它工作了(不知道爲什麼,但我仍然會採取它。該事件/渲染問題仍然讓我感到不安,但至少現在我沒有下一步:讓後退按鈕追蹤更多的標籤,但標籤內的內容鏈接:-)