Frage

Ich versuche, einen benutzerdefinierten Parser für die jQuery-Plugin zu schreiben, Tablesorter . Die Idee ist es, die Zahlen zu sortieren, um auf dem ersten Klick in absteigender Reihenfolge.

Allerdings, wenn ich die Tabelle sortieren, die Reihenfolge ändert sich nicht. Manchmal ein paar Zeilen zu bewegen, aber die meisten von ihnen das gleiche bleiben. Hier ist der Code:

$.tablesorter.addParser({
    id: 'desc',
    is: function(s) { return false },
    format: function(s) {
        return 1.0 / parseFloat( s.replace(/,/g,'') );
    },
    type: 'numeric'
});

Die anderen Parser ich geschrieben habe, arbeitet gut. Ich habe versucht, 9999 minus der Zahl anstelle von 1,0 durch sie geteilt, falls es ein Problem mit Schwimmern war (kein Glück).

War es hilfreich?

Lösung

ich eine Lösung gefunden. Ich hatte ein paar leeren Zellen in jeder Spalte, die als „NaN“ analysiert wurden. Warum diese die Bestellung vermasselt, ich weiß es nicht (leere Zellen wurden zeitweise mit regelmäßigen Zahlen angeordnet sind, gab es keine, um alles).

Kurz gesagt, dieser Code arbeitet für die Format-Funktion:

 format: function(s) {
  if ( s == '' )
   return 0;  
  return -parseInt( s.replace(/,/g,'') );
 }

Andere Tipps

Um etwas in umgekehrter numerischer Reihenfolge zu sortieren, die natürliche Art und Weise zu mir zu gehen, ist es zu multiplizieren, um -1, anstatt die Methoden, die Sie versucht haben.

Wie an den Parser selbst, der einzige Unterschied, den ich feststellen, ist, dass Sie eine tatsächliche Anzahl zurückkehren, während die Parser Beispiel an der Tablesorter Website einen String zurückgibt. Vielleicht Umwandlung in einen String den Wert wieder vor der Rückkehr wäre es?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top