2012-05-16 10 views
5

Das Plugin funktioniert gut, wenn ich nur 1 Tabelle auf einer Seite habe.Wie mehrere jQuery TableSorter Tabellen auf einer Seite haben

Aber mit zwei, bekomme ich einen Fehler:

Uncaught TypeError: Cannot set property 'count' of undefined

, dass wegen der sortList Option unten gesetzt ist. Ich habe es so eingestellt, dass es in der 4. Spalte sortiert wird, und die aux_table, die zuerst angezeigt wird, hat nur 3 Spalten. Aber es funktioniert und die main_table nicht. Wie bekomme ich sie beide zur Arbeit, oder nur die zweite, wichtiger main_table?

Beide Tabellen sind Klasse tablesorter und sie haben unterschiedliche IDs (main_table und aux_table).

Die erste Tabelle auf der Seite funktioniert, und die zweite nicht. Hier ist die JS von meinem <head> tag:

$(document).ready(function() { 
    // call the tablesorter plugin 
    $("table").tablesorter({ 
     // sort on the 4th column (index 3) column, DESC (1). ASC is (0). 
     sortList: [[3,1]] 
    });  
}); 

Antwort

5

Sie müssen Ihren Code ändern, um die Tabelle Sorter auf jedem einzelnen Tisch zu instanziiert, so dass Sie separate Einstellungen für jede angeben.

$("#table1").tablesorter({ 
    sortList: [[3,1]] 
}); 

$("#table2").tablesorter(); 
+0

Ich wusste, dass es einfach sein würde. Vielen Dank! –

+1

Dies ist korrekt, wenn Sie die Tabellen im Voraus kennen. Wenn ein Skript dynamisch generierte Tabellen auf mehreren Seiten behandelt, fand ich es hilfreich, jede Tabelle in einer Art Container zu umgeben und dann '$ (". Table-sorting-instance ") zu verwenden. Je (function()' and ' $ (this) .find (". tablesorter-table"); 'um die Tabellen zu finden. Nur teilen! – mrcoulson

+0

Dies funktioniert nicht. Ich habe 2 Tabellen mit separaten IDs und ich habe die Tabelle getrennt erstellt, wie oben gezeigt, aber nur die erste Tabelle sortiert –

0

Ja, Sie können mehrere Tabellen auf einer Seite hinzufügen. Sie können jede Tabelle in Umbruch wie unten gezeigt hinzufügen, und es ist möglich, die Seitenumbruch- und Sortierfunktionalität separat hinzuzufügen.

$(document).ready(function() { 
 
    $('.pearl-container').each(function(i) { 
 
    $(this).children(".myTable") 
 
     .tablesorter({ 
 
     widthFixed: true, 
 
     widgets: ['zebra'] 
 
     }) 
 
     .tablesorterPager({ 
 
     container: $(this).children(".pager"), 
 
     size: 5 
 
     }); 
 
    }); 
 

 
});

Bitte beachten Sie dies.

http://www.pearlbells.co.uk/table-pagination/

+1

Beachten Sie, dass [Link-only Antworten] (http://meta.stackoverflow.com/ Tags/link-only-responses/info) werden davon abgeraten, SO-Antworten sollten der Endpunkt einer Suche nach einer Lösung sein (im Gegensatz zu einem weiteren Zwischenstopp von Referenzen, die im Laufe der Zeit schal werden) -one-synopsis hier, behalten den Link als Referenz. – kleopatra

0

Wie wäre es mit Klasse der Auswahl?

$(".tablesorter").tablesorter(); 

bei Bedarf auf mehrere Tabellen zu sortieren ..