Tengo una tabla para cargar datos y escribí un código que asigna a cada tabla un href con javascript, ya que el lado del servidor está habilitado, no puedo asignar cada td a un href. Por lo tanto, cada vez que cambia la página o se invoca una consulta de búsqueda, necesito asignar href a las filas de la tabla del lado del cliente.
Esto es lo que puse hasta ahora:
function assign_href_to_tables() { console.log("Run assign_href_to_tables"); // access all td variables when serverside enabled. $('#table').on( 'order.dt', function () { var table_rows = $('#table').find('tbody tr'); console.log(table_rows) // scan through table rows and assign onclick event to each row. table_rows.each(function(index, element) { $(this).click(function() { var id = $(this).find('td:nth-child(1)').text(); // reidrect to the edit page with the id of the clicked row window.document.location = '/detail/' + id; }); }); } ); } Invoco la función assign_href_to_tables en initComplete por ejemplo:
"initComplete": function( settings, json ) { assign_href_to_tables(); },Si llamo a la función en el documento listo, afectará solo a la primera página. Cuando la página cambia o la solicitud de búsqueda consultada, href deja de funcionar.
Intenté seguir este enlace pero no lo entendí ni pude implementarlo.
Según tengo entendido, el problema surge initComplete no espera a que se carguen los datos de la tabla. No sé lo que falta en mi trabajo. Gracias.