not - Error del complemento jQuery TableSorter en init: no se puede leer la propiedad ''0'' de undefined
tablesorter jquery ejemplo (6)
Quiero ordenar mi mesa con jQuery Plugin TableSorter. Así que me sale esta tabla:
<table id="stats" class="zebra-striped">
<thead>
<tr>
<th>Date</th>
<th>Annonce</th>
<th>Support</th>
<th>Nb Assoc.</th>
<th>Nb Transfo.</th>
<th>Cout</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
Así que como puedes ver mi mesa está vacía, solo tengo cabecera. Así que inicie tablesorter con celda vacía con:
$("table#stats").tablesorter({ sortList: [[0,0]]});
y de inmediato me sale este error:
jquery.tablesorter.min.js:4 Uncaught TypeError: Cannot read property ''0'' of undefined
Para tu información, hay mi js cargado:
<!-- Grab Google CDN''s jQuery, with a protocol relative URL; fall back to local if necessary -->
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.js"></script>
<script>window.jQuery || document.write(''<script src="js/libs/jquery-1.5.1.min.js">/x3C/script>'')</script>
<script src="js/bootstrap-dropdown.js"></script>
<script src="js/bootstrap-scrollspy.js"></script>
<script src="js/jquery.tablesorter.min.js"></script>
¿Alguna idea de por qué obtengo esto y cómo puedo hacer que el complemento funcione de nuevo?
Gracias
Debe tener datos en su tabla antes de poder llamar al método sortList. Esto se debe a que aplica una indexación en este método que no encontrará ningún registro si no hay datos presentes y arrojará el error "No se puede leer la propiedad ''0'' de indefinido".
Me he dado cuenta de que esto ocurre con la última versión (2.0.5b, creo) que se encuentra en http://tablesorter.com/ , pero no sucedió en versiones anteriores (tengo una copia de 2.0.3, y funcionó en eso). Sin embargo, hay una versión bifurcada en https://github.com/Mottie/tablesorter , que se mantiene mucho mejor y no tiene este error.
No necesitas tener datos en tu tabla. Simplemente inicia tu mesa de esa manera:
$("table#stats").tablesorter();
Luego, una vez que haya insertado los datos en la tabla, debe indicar al complemento que la tabla se actualizó y ordenarla:
$("table#stats").trigger("update");
var sorting = [[0,0]];
$("table#stats").trigger("sorton",[sorting]);
No es bueno usar tablesorter cuando hay una tabla vacía, así que puedes usar esta condición:
if ($("table#stats tbody tr").length > 0)
$(this).tablesorter({ sortList: [[0,0]]});
No pude hacer que nada de esto funcionara, así que establezco un tiempo de espera en la inicialización para tablesorter ...
setTimeout(function() {$(''table'').tablesorter();}, 10000);
Recibí un error "no se puede leer la propiedad ''formato'' de indefinido". En mi caso, el error se produjo debido a un número diferente de ''td'' en ''tbody'' que en ''thead''