我有一个包含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..');
}
运行此命令时,只运行自定义函数,同时我希望运行默认和自定义函数。
答案 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();
}
});