DataTables Uncaught TypeError:无法设置未定义的属性“pdfMake”

alr*_*ame 1 jquery datatables

我正在尝试为表设置数据表。该表没有什么特别不寻常的(在这个例子中内容被留空),我相信我已经包含了数据表运行的所有正确文件,但是,有一个 javascript 错误:

button.html5.min.js:11 未捕获的类型错误:无法设置未定义的属性“pdfMake”

   <head>
    <link rel="stylesheet" href="../js/jquery-ui-1.12.1/jquery-ui.css">

    <script type="text/javascript" src="../js/jquery-3.3.1.min.js"></script>
    <script type="text/javascript" src="../js/jquery.cookie.js"></script>
    <script type="text/javascript" src="../js/jquery-ui-1.12.1/jquery-ui.js"></script>
    <script type="text/javascript" src="../js/DataTables-1.10.18/js/jquery.dataTables.min.js"></script>
    <script type="text/javascript" src="../js/Buttons-1.5.4/js/buttons.html5.min.js"></script>
    <script type="text/javascript" src="../js/Buttons-1.5.4/js/dataTables.buttons.min.js"></script>

    <script type="text/javascript" src="../js/pdfmake-0.1.36/pdfmake.min.js"></script>
    <script type="text/javascript" src="../js/JSZip-2.5.0/jszip.min.js"></script>
    <script type="text/javascript" src="../js/pdfmake-0.1.36/vfs_fonts.js"></script>
    <script type="text/javascript" src="../js/Buttons-1.5.4/js/buttons.colVis.min.js"></script>
    <script type="text/javascript" src="../js/Responsive-2.2.2/js/dataTables.responsive.min.js"></script>
    <link rel="stylesheet" type="text/css" href="../js/Buttons-1.5.4/css/buttons.dataTables.min.css">
    <link rel="stylesheet" type="text/css" href="../js/DataTables-1.10.18/css/jquery.dataTables.min.css">
    <link rel="stylesheet" type="text/css" href="../js/Responsive-2.2.2/css/responsive.dataTables.min.css">
</head>
<body><table id="termtable7"></table></body>
<script>
$(document).ready(function(){
    var datatable=$('#termtable'+question_id).DataTable({        
       dom:'Bfrtip',
       buttons:['columnsToggle', 'copy', 'excel', 'pdf'],
      responsive:true
    });
});
</script>
Run Code Online (Sandbox Code Playgroud)

唯一显示的按钮是 columnsToggle 和搜索选项。由于错误,其他按钮丢失。

有没有人对 Datatables 有所了解,可以让我了解这里真正发生了什么?

小智 11

回答这个问题可能为时已晚,但可能会帮助其他人..

我不得不将我的加载顺序更改为跟随并且错误消失了。注意javascript文件的加载顺序。顺序必须完全相同,否则将找不到组件。

<script src="js/jquery-3.4.1.min.js"></script>
<script src="js/bootstrap.min.js"></script>
<script src="js/popper.min.js"></script>    
<script src="js/jquery.dataTables.min.js"></script> 
<script src="js/dataTables.buttons.min.js"></script>    
<script src="js/pdfmake.min.js"></script>   
<script src="js/buttons.html5.min.js"></script> 
<script src="js/buttons.print.min.js"></script>
Run Code Online (Sandbox Code Playgroud)