当我点击dataTable
中的特定按钮时,我写了一些customize
脚本
buttons : [
{ extend : 'copyHtml5'},
{
extend : 'excel',
title : "report" },
{
extend : 'pdf',
title : "report"},
{
extend : 'print',
text : 'Print Selected',
orientation : 'landscape',
title : '',
autoPrint : false,
customize : function (win){
//TABLE STYLE
$(win.document.body).addClass('white-bg');
$(win.document.body).css('font-size', '10px');
$(win.document.body).find('table').css('font-size', 'inherit');
$(win.document.body).find('table tr').css('border','1px solid black');
//PREPEND HEADER
//another lines to adding complex header
//APPEND FOOTER
//another lines to adding complex footer
]
每个customize
脚本仅适用于每个按钮,因此如果我想让其他按钮执行与按钮print
相同的操作,我需要复制customize
。那么,如何避免这种情况呢?我不想复制它,因为它不太可维护。
答案 0 :(得分:0)
提取customize
函数并将其传递给属性:
var buttons=[
{ 'extend' : 'copyHtml5'},
{
'extend' : 'excel',
'title' : "report" },
{
'extend' : 'pdf',
'title' : "report"},
{
'extend' : 'print',
'text' : 'Print Selected',
'orientation' : 'landscape',
'title' : '',
'autoPrint' : false,
'customize' : customize
}
]
var customize = function (win){
//TABLE STYLE
$(win.document.body).addClass('white-bg');
$(win.document.body).css('font-size', '10px');
$(win.document.body).find('table').css('font-size', 'inherit');
$(win.document.body).find('table tr').css('border','1px solid black');
}