Frage

Ich bin die jQuery-Plugin Tablesorter auf einer Seite verwendet wird.

Unfortunatley, die Tabelle, die dynamisch modifiziert werden sortiert ist, und wenn ich sortie Hinzufügen eines Elements, verschwindet das Element, zu dem Zustand, den Tisch wieder herstellt, dass es sich in, wenn der Tablesorter erstellt wurde.

Gibt es eine Möglichkeit, dass ich Tablesorter zwingen kann, die Seite neu zu scannen, damit diese neuen Elemente richtig sortiert werden?

War es hilfreich?

Lösung

Ich glaube, dass Sie ein Update auslösen können mit so etwas wie:

$(table).trigger("update")

Andere Tipps

Es scheint, Sie richtig sind.

$(table).trigger("update");
$(table).trigger("appendCache");

funktioniert der Trick.

Als Hinweis, der tablesorter API irgendwann geändert, so wurden diese Dinge geändert, sowie die Ereignisbindung. Mein größter hangup wurde versucht, herauszufinden, warum manche Dinge funktionierten und andere nicht, und es war aufgrund einer falsche Version des Plugins zu haben, obwohl es kein offensichtlicher Unterschied zu sein.

Die $(table).trigger("update"); wirft Fehler

    Uncaught TypeError: Cannot read property 'rows' of undefined 

So gibt es eine jQuery-Funktion .ajaxStop() wo tablesorter() genannt wird. Rufen Sie nicht tablesorter in .ready()

    jQuery(document).ajaxStop(function(){
      jQuery("#table_name").tablesorter();
    })

, welche die Arbeit geleistet hat

Für die Newbies wie mich, die Frage, die sich mit dynamisch generierten Tabelle sortiert wird, ist hier die Lösung. Die Antwort ist zuvor gegeben richtig, aber wo platziere Sie diesen Befehl?

$('#tableId').tablesorter().trigger('update');

Sie müssen es platzieren, sobald Sie die Daten an die Tabelle angehängt haben. Ex in meinem Fall

var tableData = "<thead><tr><th>Name</th><th>Age</th></thead><tbody><tr><td>Izaki</td><td>24</td><tr><tr><td>Serizawa</td><td>25</td></tr>";
$('#tableId').html('tableData');
$('#tableId').tablesorter().trigger('update');
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top