javascript - example - propiedades datatable jquery
Datatables.row() no está definido (3)
Quiero eliminar filas simplemente haciendo clic en el botón relacionado .. las tablas de datos funcionan, puedo usar alguna función básica como ordenar y buscar en datatable , pero cuando hago clic en el botón simplemente dije un error indefinido:
para su información, estoy usando datatable 1.10 y jquery 1.10.2
Código:
<table cellpadding="0" cellspacing="0" border="0" class="row-border" id="table">
<thead>
<th>Video ID</th>
<th>Filename</th>
<th>Action</th>
</thead>
<tbody>
<td>1</td>
<td>ABCD</td>
<td><input type=''button'' name=''deleteBtn'' value=''Delete'' />
</tbody>
<tfoot>
<tr>
<th>Video ID</th>
<th>Filename</th>
<th>Action</th>
</tr>
</tfoot>
</table>
<script src="jquery.min.js"></script>
<script src="jquery.dataTables.min.js"></script>
<script type="text/javascript">
var table = $(''#table'').dataTable( {} );
$(''#table tbody'').on(''click'',"input[type=''button'']",function() {
table
.row( $(this).parents(''tr'') )**
.remove()
.draw();
});
</script>
</body>
</html>
No funciona, porque hay una gran diferencia entre el constructor dataTable()
y el constructor DataTable()
introducido en 1.10.x ( ver documentos ):
La diferencia entre los dos es que el primero devolverá un objeto jQuery, mientras que el segundo devolverá una instancia de la API de DataTables.
Simplemente cambia
var table = $(''#table'').dataTable( {} );
a
var table = $(''#table'').DataTable( {} );
si desea trabajar en la nueva API de tablas de datos a través de la variable de table
.
Vea su código funcionando -> http://jsfiddle.net/Sd6UQ/
NB: recuerde usar <tr>
.. </tr>
y cerrar <td>
correctamente. Las tablas de datos pueden ser muy sensibles al formato incorrecto.
Si decides crear el datatable de esta manera.
table = $ (''# table''). dataTable ({})
obtendrá un objeto jQuery en la tabla var, pero puede acceder a la api dataTable con la siguiente instrucción
table.api ()
podías verlo corriendo aquí
podría usar esa técnica si no tiene acceso a la instrucción de creación de datos
<script>
//datatable creation is in another file
//$(''#table'').dataTable( {} )
$("button[name''deleteBtn'']").click(function(){
var row = $(this).closest("tr");
var table = row.closest(''table'').dataTable();
table.api()
.row( row )
.remove()
.draw();
})
<script>
puedes verlo trabajando aqui
Simplemente puede agregar el siguiente código para recargar datos
//var table = $(''#table'').dataTable( {} );
table.ajax.reload();