Javascript 将回调附加到数据表:what';正确的语法是什么?
我正在定制一个第三方web应用程序,它使用Datatables通过AJAX加载一些数据。我想给它附加一个回调函数,以检测它何时完成加载 现在,我已经阅读了Javascript 将回调附加到数据表:what';正确的语法是什么?,javascript,jquery,datatables,Javascript,Jquery,Datatables,我正在定制一个第三方web应用程序,它使用Datatables通过AJAX加载一些数据。我想给它附加一个回调函数,以检测它何时完成加载 现在,我已经阅读了initComplete()和fnDrawCallback,但问题是:我看到的所有代码示例的形式如下: $('#tablename').dataTable( { "initComplete": function() { } 但在我的例子中,datatable是由web应用程序创建的,而不是由我创建的,我不想弄乱它的源代码(除其他外,因为d
initComplete()
和fnDrawCallback
,但问题是:我看到的所有代码示例的形式如下:
$('#tablename').dataTable( {
"initComplete": function() { }
但在我的例子中,datatable是由web应用程序创建的,而不是由我创建的,我不想弄乱它的源代码(除其他外,因为datatable是在许多页面使用的函数中创建的,我只需要在其中一个页面中附加此回调)。我可以做的是在创建表后获取对该表的引用:
var tabla=$.('#tablename').DataTable();
然后。。。什么?那么,我如何将回调附加到它?在这种情况下,正确的语法是什么
(如果这是一个愚蠢的问题,很抱歉。我在工作中不太使用Javascript,当我不得不触摸它时,我的技能往往会生锈)。您可以尝试保存旧设置,使用新回调扩展设置对象,并使用这些新设置重新初始化表:
var tabla = $('#table').dataTable();
var oldOpts = tabla.fnSettings();
var newOpts = $.extend(oldOpts, {
fnDrawCallback: function(oSettings) {
//Your code
}
tabla.fnDestroy();
$('#table').dataTable(newOpts);
您可以侦听DataTables完全初始化并加载数据时触发的事件
Ajax源数据
如果您使用的是来自Ajax的数据,则可以在数据表初始化之前或之后将处理程序附加到此事件
var table = $('#example').DataTable({
ajax: 'https://api.myjson.com/bins/qgcu'
});
$('#example')
.on('init.dt', function () {
console.log( 'Table initialisation complete: '+new Date().getTime() );
});
$('#example')
.on('init.dt', function () {
console.log( 'Table initialisation complete: '+new Date().getTime() );
});
var table = $('#example').DataTable();
有关代码和演示,请参阅
HTML或JavaScript源数据
如果您使用的是HTML或JavaScript源数据,则需要在初始化DataTables之前将处理程序附加到此事件
var table = $('#example').DataTable({
ajax: 'https://api.myjson.com/bins/qgcu'
});
$('#example')
.on('init.dt', function () {
console.log( 'Table initialisation complete: '+new Date().getTime() );
});
$('#example')
.on('init.dt', function () {
console.log( 'Table initialisation complete: '+new Date().getTime() );
});
var table = $('#example').DataTable();
有关代码和演示,请参阅