Comment puis-je forcer jQuery tablesorter à toujours trier une colonne dans une direction?

StackOverflow https://stackoverflow.com/questions/859925

  •  21-08-2019
  •  | 
  •  

Question

J'ai une table triée des résultats pour un événement sportif. Lorsque je clique sur un en-tête, je veux trier du meilleur au pire, toujours. Je ne veux pas que ça marche arrière lorsque je clique à nouveau. Dans certains cas, le « meilleur » est le plus court laps de temps, et d'autres cas, le « meilleur » est la plus grande quantité (à savoir plus de poids, la distance la plus longue). J'ai eu peu de chance jusqu'à présent.

Était-ce utile?

La solution

Jamais utilisé tablesorter avant, mais en prenant un coup d'œil, il ne semble pas comme il le fait ce que vous voulez qu'il fasse hors de la boîte. Voici quelques hacks (non testé) je suis venu avec:

Une façon (à court de modifier la source de plugin) serait de revenir sur le titre cet exemple et ajouter un gestionnaire d'événements clic pour vos cellules d'en-tête pour déclencher votre tri en utilisant un ordre défini. Vous pouvez enlever le gestionnaire que le plugin tablesorter ajouté ou return false de votre gestionnaire, pour éviter le tri deux fois.

Sinon, si vous n'êtes pas peur de changer la source de plug-in, il ressemble à la ligne 536 est celui que vous voulez:

// get current column sort order
this.order = this.count++ % 2;

Remplacer par this.count++ % 2 pour monter 0, pour la descente 1. Vous pouvez également le rendre plus robuste en ajoutant un « forcé ordre » en option (voir les lignes 94-114), peut-être même en faire un tableau (comme sortList) pour indiquer les colonnes devraient avoir l'ordre forcé.

Bonne chance!

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top