DataTables:Uncaught TypeError:无法读取未定义的属性“按钮”

时间:2016-02-20 00:45:00

标签: javascript datatables datatables-1.10

我在设置使用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错误:

  

未捕获的TypeError:无法读取未定义的属性“按钮”

我做错了什么?

see an example of this at https://jsfiddle.net/jhfrench/at83rcoL/

1 个答案:

答案 0 :(得分:14)

我在起草这个问题时想通了。在这里分享来之不易的答案:

仅包含相关的JS资产(jquery.dataTables.min.js,dataTables.buttons.min.js等)是不够的。您必须通过使用button对象元素扩展默认值来调用Buttons插件:

// Invoke Buttons plugin (Bfrtip...)
$.extend($.fn.dataTable.defaults, {
    buttons: [ 'copy', 'csv', 'excel' ]
});

或者您可以在dataTable()初始化时调用它:

$("#table2").DataTable({
  buttons: [
    'copy', 'excel', 'pdf'
  ]
});

https://jsfiddle.net/jhfrench/at83rcoL/8/examples of both approaches working