DataTables - 有两种方法可以运行initComplete吗?

时间:2017-12-11 21:37:18

标签: jquery datatable datatables

我有一个包含70多个dataTables的应用程序,所以我正在使用defaults扩展来设置所有常用的配置设置。但是,当单个dataTable有自己的initComplete函数时,我无法找到在initComplete中运行函数的方法。

这是我的测试代码:

$.extend( true, $.fn.dataTable.defaults, {
    "sDom": '<"top"i>rt<"bottom"lp><"clear">',
    "pageLength": 20,
    "stateSave": false,
    "bLengthChange": false,
    "oLanguage": {
        "sInfo": ""
    },
    initComplete: function () {
        defaultStuff();
    }
});

var sampleTable = $('#example').DataTable({
    "pageLength": 10,       
    "paging": true,
    initComplete: function () {
        customStuff();
    } 
});

function defaultStuff() {
    console.log('Default..');
}

function customStuff() {
    console.log('Custom..');
}

运行此命令时,只运行自定义函数,同时我希望运行默认和自定义函数。

2 个答案:

答案 0 :(得分:1)

我建议你在初始化时需要额外准备/代码的表上监听init.dt

$('#example').on('init.dt', function(e, settings, json) {
  //api can be retrieved by
  var api = $('#example').DataTable();
  ...
})

答案 1 :(得分:0)

单个数据表的设置会覆盖默认值,这就是defaultStuff()永远不会调用#example的原因。

要实现此目的,您需要在该表的initComplete内手动拨打电话:

var sampleTable = $('#example').DataTable({
  pageLength: 10,       
  paging: true,
  initComplete: function () {
    defaultStuff(); // add this here too
    customStuff();
  } 
});