Javascript 将回调附加到数据表:what';正确的语法是什么?

Javascript 将回调附加到数据表:what';正确的语法是什么?,javascript,jquery,datatables,Javascript,Jquery,Datatables,我正在定制一个第三方web应用程序,它使用Datatables通过AJAX加载一些数据。我想给它附加一个回调函数,以检测它何时完成加载 现在,我已经阅读了initComplete()和fnDrawCallback,但问题是:我看到的所有代码示例的形式如下: $('#tablename').dataTable( { "initComplete": function() { } 但在我的例子中,datatable是由web应用程序创建的,而不是由我创建的,我不想弄乱它的源代码(除其他外,因为d

我正在定制一个第三方web应用程序,它使用Datatables通过AJAX加载一些数据。我想给它附加一个回调函数,以检测它何时完成加载

现在,我已经阅读了
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();
有关代码和演示,请参阅