我在设置使用Buttons插件的自定义dataTable时遇到问题.
我可以设置一个有效的custom default dom布局:
//vanilla dom (frtip...) $.extend($.fn.dataTable.defaults,{ dom: 'frtip' });
但如果我尝试include the “B” character in the dom
layout:
// Invoke Buttons plugin (Bfrtip...) $.extend($.fn.dataTable.defaults,{ dom: 'Bfrtip' });
…然后运行dataTables,报告此JavaScript错误:
Uncaught TypeError: Cannot read property ‘buttons’ of undefined
我究竟做错了什么?
请see an example of this at https://jsfiddle.net/jhfrench/at83rcoL/
解决方法
我在起草这个问题时想通了.在这里分享来之不易的答案:
仅包含相关的JS资产(jquery.dataTables.min.js,dataTables.buttons.min.js等)是不够的.您还必须通过使用按钮对象元素扩展默认值来调用Buttons插件:
// Invoke Buttons plugin (Bfrtip...) $.extend($.fn.dataTable.defaults,{ buttons: [ 'copy','csv','excel' ] });
或者你可以在dataTable()初始化时调用它:
$("#table2").DataTable({ buttons: [ 'copy','excel','pdf' ] });
有关examples of both approaches working,请参见https://jsfiddle.net/jhfrench/at83rcoL/8/.