2012-01-26 48 views
2

我目前正在使用一個tablesorter表,我需要爲每個表頭使用一個自定義分析器。我想知道,如果有一個簡單的方法來做到這一點,如:JQuery tablesorter自定義分析器到所有頭文件?

table.tablesorter({ 
     headers: { 
      0-20: { 
       sorter:'CareerLast' 
      }, 

     } 
    }); 

我知道,上面的代碼不工作,但我只是想知道,如果有應用的更易讀的方式自定義解析器,而不是通過索引手動將它放在每列上。

回答

4

嗯,我覺得你有三種選擇:

  1. 定義每個標題,0通過初始化選項20。

    header : { 
        0 : { sorter : 'CareerLast' }, 
        1 : { sorter : 'CareerLast' }, 
        2 : { sorter : 'CareerLast' }, 
        // etc 
        20 : { sorter : 'CareerLast' } 
    } 
    
  2. 使用元數據插件,並在頭類添加分揀機的定義:

    // untested, but I think this will work 
    $('table').find('thead th').addClass("{sorter:'CareerLast'}"); 
    $('table').tablesorter(); 
    
  3. 試試我forked version of tablesorter,只是增加分揀機的類名

    $('table').find('thead th').addClass('sorter-CareerLast'); 
    $('table').tablesorter(); 
    
+0

的值;它讓我的生活變得更輕鬆! – pjonas221

+0

選項#2爲我工作,但我需要在'CareerLast'周圍添加單引號。 –

+0

謝謝@GuyHollington,我已經更新了我的答案:) – Mottie

0

從addParser中的'is'返回true

例如:此解析器分配「N/A」我與選項3上附加尼斯工作就-1 $.tablesorter.addParser({ id: 'num-with-na', is: function(s) { //always use this return true; }, format: function(n){ return n === 'N/A' ? -1 : n; }, type: 'numeric' });

+0

你能解釋一下這個答案是如何回答最初的問題嗎? – Kmeixner

+0

該運營商希望將自定義分析器應用於表中的所有列,而無需單獨將其添加到每列(如Mottie的#1)。這是在不添加類的情況下執行此操作的簡單方法 – Siege