propiedades - jQuery datatables: prueba si el complemento de datatables está inicializado
propiedades datatable jquery (6)
Datatable tiene un método para verificar si un elemento se ha inicializado como datatable o no - $.fn.DataTable.fnIsDataTable
tableElement = document.getElementById(''your table ID'');
$.fn.DataTable.fnIsDataTable(tableElement); // returns true or false
Quiero verificar si un elemento de la tabla con, por ejemplo, id = "datatable" es datatables-initialized. Algo como esto:
if ($(''#datatable'').dataTable().initialized) {
alert("initialized!");
}
else {
alert("not initialized!");
}
¿Cómo puedo hacer eso? ¡Gracias!
Después de llamar a .dataTable (), ¿hace algo en la tabla que lo hace identificable? ¿Es decir, agrega una nueva clase "inicializada" o algo así? Si es así, puedes recorrer los ítems así:
$(''.datatable'').each(
function(index, element) {
var _table = $(element);
if (_table.hasClass(''initialised'')) {
// Do stuff
} else {
// Do stuff
}
}
);
Disculpas si esto no es lo que quieres decir. No está claro en tu pregunta qué hace realmente "dataTable ()".
He usado la función callback()
para hacer lo mismo en mi escenario. Pensé en compartir esto como un enfoque alternativo
/* During Initialization */
var isTableInitialized = false;
$(''#datatable'').dataTable({/* your dataTable configurations*/},initializeDT());
/* Implement a callback function to set the value */
function initializeDT() {
isTableInitialized = true;
}
Más tarde en el código ..
/* Checking for Initialization is easier*/
if(isTableInitialized) {
/* Do something here */
} else {
/* Do something here */
}
Primero, agregue un nombre de clase especial cuando esté inicializando las bases de datos:
$(''.datatable'').not(''.initialized'').addClass(''initialized'').dataTable()
Y ahora puedes distinguirlos por nombre de clase:
alert( $(''#datatable'').hasClass(''initialized'') )
Puede la función fnIsDataTable en jQuery datatable
var ex = document.getElementById(''example'');
if ( ! $.fn.DataTable.fnIsDataTable( ex ) ) {
$(ex).dataTable();
}
Puedes encontrar más información en la api
Siento que seguir es la respuesta correcta a esto.
$(document).ready(function(){
if (jQuery().dataTable) {
// your code to do some detaul set ups
}
});
Por ejemplo
$(document).ready(function(){
if (jQuery().dataTable) {
$.extend( $.fn.dataTable.defaults, {
iDisplayLength : 200,
aLengthMenu : [[100, 200, 300, -1], [100, 200, 300, "All"]],
});
}
});
De esta forma, if(jQuery().<libname>)
debería poder verificar cualquier biblioteca cargada o no.