¿Cómo fuerzo jQuery tablesorter siempre para ordenar una columna en una dirección?

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

  •  21-08-2019
  •  | 
  •  

Pregunta

Tengo una tabla ordenada de los resultados de un evento deportivo. Cuando hago clic en un encabezado, quiero ordenar de mejor a peor, siempre. No quiero que a la inversa cuando hago clic de nuevo. En algunos casos, la "mejor" es el menor lapso de tiempo, y otro caso la "mejor" es la cantidad más grande (es decir, más de peso, la distancia más larga). He tenido poca suerte hasta ahora.

¿Fue útil?

Solución

Nunca utiliza tablesorter antes, pero echando un vistazo rápido, que no parece que hace lo que quiere que haga fuera de la caja. Aquí hay un par de cortes (no probado) que se le ocurrió:

Una forma (por debajo de la modificación de la fuente del plugin) sería la de recoger en este ejemplo y agregar un controlador de eventos de clic a sus celdas de cabecera para activar su clase utilizando un orden definido. Puede que tenga que quitar el controlador que el plugin tablesorter añadió, o volver falsa de su manejador, para evitar la clasificación dos veces.

Por otra parte, si usted no tiene miedo de cambiar la fuente del plugin, parece que la línea 536 es la que desea:

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

Reemplazar this.count++ % 2 con 0 para el ascenso, 1 para descender. También podría hacerlo más robusto mediante la adición de una "orden forzada" como una opción (ver líneas 94-114), tal vez incluso lo que es en una matriz (como sortList) para indicar qué columnas deben tener el orden forzado.

Buena suerte!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top