mottie - Usar jQuery tableSorter en la tabla modificada dinĂ¡micamente
tablesorter is not a function (4)
Creo que puedes activar una actualización usando algo como:
$(table).trigger("update")
Estoy usando el plugin jQuery tableSorter en una página.
Desafortunadamente, la tabla que se está ordenando se modifica dinámicamente, y cuando ordeno después de agregar un elemento, el elemento desaparece, restaurando la tabla al estado en que estaba cuando se creó tableSorter.
¿Hay alguna manera de forzar a TableSorter a volver a examinar la página para que estos elementos nuevos estén ordenados correctamente?
Parece que estás en lo correcto.
$(table).trigger("update"); $(table).trigger("appendCache");
Hace el truco.
Como nota, la API de tablesorter cambió en algún momento, por lo que estas cosas cambiaron, así como el enlace del evento. Lo que más me molestaba era tratar de descubrir por qué algunas cosas funcionaban y otras no, y era por tener una versión incorrecta del complemento, a pesar de que no había una distinción obvia.
El $(table).trigger("update");
lanza un error
Uncaught TypeError: Cannot read property ''rows'' of undefined
Entonces, hay una función jquery .ajaxStop()
donde se llama a tablesorter()
. No llame a tablesorter en .ready()
jQuery(document).ajaxStop(function(){
jQuery("#table_name").tablesorter();
})
que hizo el trabajo
Para aquellos novatos como yo que están enfrentando problemas con la clasificación de tablas generadas dinámicas, aquí está la solución. La respuesta dada anteriormente es correcta, pero ¿dónde colocas este comando?
$(''#tableId'').tablesorter().trigger(''update'');
Debe colocarlo tan pronto como haya agregado los datos a la tabla. Ex en mi caso
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'');