2011-05-26 60 views
0

我有一個DataTable此自定義分類器:jQuery dataTable自定義排序拾取舊HTML?

jQuery.fn.dataTableExt.oSort['abbr-date-asc'] = function(a,b) { 
    var x = a.match(/abbr="(.*?)"/)[1]; 
    var y = b.match(/abbr="(.*?)"/)[1]; 
    return ((x < y) ? -1 : ((x > y) ? 1 : 0)); 
}; 

當我進入調試器是什麼在變量是舊的HTML,即還有什麼當頁面第一次繪製。在執行此代碼^^之前,在繪製頁面和onReady函數之後,我重繪我表格中的TDS,使其成爲我希望此自定義分揀機選取的不同HTML。它正在挑起舊的東西。任何想法?

編輯:這裏是HTML

<span abbr="">  
    <span class="localtimeUTC" style="display: none;">Dec 03, 2011</span> 
    <span class="localtimeUTCabbr" style="display: none;">2011-12-03</span> 
</span> 

這是在點擊的時候頁面上的HTML時,我想對它進行排序:

<span abbr="2011-12-03">Dec 03, 2011</span> 

它撿原。我已經嘗試在表格定義中使用bUseRendered:false,沒有骰子。我嘗試將排序函數轉換爲閉包,沒有骰子。

jQuery('#my_table').dataTable({ 
    "bJQueryUI": true, 
    "bAutoWidth": false, 
    "bUseRendered" : false, 
    "aoColumns" : [ 
    { sWidth: '5%', bSortable: false, bSearchable: false }, 
    { sWidth: '35%' }, 
    { sWidth: '15%' }, 
    { sWidth: '15%', sType: 'abbr-date', bSortDataType: "abbr-date" }, 
    { sWidth: '30%', bSortable: false, bSearchable: false } 
    ], 
}).show(); 
+0

你在用什麼調試器? – Mutt 2011-05-26 13:08:50

+0

Firebug。此外,我發現UseRendered在這裏:http://www.datatables.net/usage/columns,但我還沒有得到它的工作,仍然傳遞我的自定義排序類型的舊元素。我應該用HTML修改問題。 – tesserakt 2011-05-26 13:12:49

回答

0

好的我找到了答案:我沒有正確使用DataTable。我再次渲染用我自己的JS DataTable的外面,但使用

fnRender bUseRendered的組合陣:假 螢火蟲

我能有目前,正確的HTML返回。事實證明,DataTable在默認情況下保留了原始表的緩存,並通過使用這兩件事情我可以獲得當前的HTML。

+0

你能說清楚如何解決,因爲我也面臨着同樣的問題。 – ASD 2012-12-27 04:22:19