Trier une colonne de données mélangée avec tablesorter

J’utilise actuellement le plugin JQuery Tablesorter qui se trouve à l’ adresse suivante : http://www.tablesorter.com , et j’ai des problèmes avec une colonne contenant à la fois des dates et du texte. Voici le jsfiddle:

http://jsfiddle.net/M3V4U/1/

Si vous cliquez sur le titre du champ du premier nom, il ne sera pas sortingé car il y a une date aléatoire à l’intérieur. J’ai essayé de forcer une sorte de texte mais ça ne marcherait pas. Quelqu’un a des idées?

On dirait que vous essayez de définir le type de sortingeur à l’aide de métadonnées

first name 

Mais le plugin de métadonnées n’a pas été chargé dans cette démo. Donc, chargez le plug – in de métadonnées ou ajoutez le type de sortingeur à l’option d’en-tête:

 $("table").tablesorter({ headers: { 0: { sorter: "text" }, 4: { sorter: "percent" } } }); 

Voici une démo mise à jour .

J’ai trouvé une réponse pas terrible, mais cela fonctionne pour le moment.

J’ai enlevé cet parsingur:

 ts.addParser({ id: "shortDate", is: function (s) { return /\d{1,2}[\/\-]\d{1,2}[\/\-]\d{2,4}/.test(s); }, format: function (s, table) { var c = table.config; s = s.replace(/\-/g, "/"); if (c.dateFormat == "us") { // reformat the ssortingng in ISO format s = s.replace(/(\d{1,2})[\/\-](\d{1,2})[\/\-](\d{4})/, "$3/$1/$2"); } else if (c.dateFormat == "uk") { // reformat the ssortingng in ISO format s = s.replace(/(\d{1,2})[\/\-](\d{1,2})[\/\-](\d{4})/, "$3/$2/$1"); } else if (c.dateFormat == "dd/mm/yy" || c.dateFormat == "dd-mm-yy") { s = s.replace(/(\d{1,2})[\/\-](\d{1,2})[\/\-](\d{2})/, "$1/$2/$3"); } return $.tablesorter.formatFloat(new Date(s).getTime()); }, type: "numeric" }); 

ce qui semble résoudre mon problème, puisqu’il empêche l’parsingur de date de s’exécuter complètement. Cela poserait probablement des problèmes dans d’autres scénarios, mais semble fonctionner pour ma page pour l’instant. Je suis toujours ouvert à toute autre réponse, si les gens en ont.