JoureryDataTables:单击列名后数据可见

JoureryDataTables:单击列名后数据可见,datatables,javascript,jquery,html,Datatables,Javascript,Jquery,Html,我有一个问题: 我从RESTAPI接收数据。 页面加载后,我有一个空表,单击其中一个列名或显示(带数字的组合框)条目后,我的数据将显示 你们知道为什么在点击一个可用的按钮后表格才会显示数据吗? 若我使用delete按钮从表中删除最后一列,那个么在页面加载后,并没有单击列名的情况下,表中显示数据,所以最后一列定义可能有问题 这是我的js: $(document).ready(function () { $.ajax({ url: 'http://lo

我有一个问题:

我从RESTAPI接收数据。 页面加载后,我有一个空表,单击其中一个列名或显示(带数字的组合框)条目后,我的数据将显示

你们知道为什么在点击一个可用的按钮后表格才会显示数据吗? 若我使用delete按钮从表中删除最后一列,那个么在页面加载后,并没有单击列名的情况下,表中显示数据,所以最后一列定义可能有问题

这是我的js:

    $(document).ready(function () {
        $.ajax({
            url: 'http://localhost:8080/user/',
            type: 'GET',
            dataType: 'json',
            success: function (data) {
                bindtoDatatable(data);
            }
        });

    });

    function bindtoDatatable(data) {
        var table = $('#table').dataTable({
            data: data,
            columns: [{
                data: "id"
            }, {
                data: "firstname"
            }, {
                data: "lastname"
            }, {
                data: "email"
            }, {
                data: null,
                className: "center",
                defaultContent: '<a href="" class="deleteUser">Delete</a>'
            }]
        })
    }

    //Delete a record
    $('.deleteUser').on('click', 'a.deleteUser', function (e) {
        e.preventDefault();

        table.remove( $(this).closest('tr'), {
            title: 'Delete record',
            message: 'Are you sure you wish to remove this record?',
            buttons: 'Delete'
        } );
    }
    );

$(文档).ready(函数(){
$.ajax({
网址:'http://localhost:8080/user/',
键入:“GET”,
数据类型:“json”,
成功:功能(数据){
bindtoDatatable(数据);
}
});
});
函数bindtoDatatable(数据){
变量表=$(“#表”).dataTable({
数据:数据,
栏目:[{
数据:“id”
}, {
数据:“名字”
}, {
数据:“姓氏”
}, {
数据:“电子邮件”
}, {
数据:空,
类名:“中心”,
默认内容:“”
}]
})
}
//删除记录
$('.deleteUser')。在('click','a.deleteUser',函数(e)上{
e、 预防默认值();
表.remove($(this).closest('tr'){
标题:“删除记录”,
消息:“您确定要删除此记录吗?”,
按钮:“删除”
} );
}
);
和html:


    <html lang="en">
    <head>
        <link rel="stylesheet" href="../../../js/bootstrap.min.css">
        <link rel="stylesheet" href="../../../css/main.css">
        <script src="../../../js/jquery-3.4.1.min.js"></script>
        <script src="../../../js/bootstrap.min.js"></script>
        <script src="../../../js/admin/users2.js"></script>
        <script type="text/javascript" charset="utf8"
                src="//cdn.datatables.net/1.10.20/js/jquery.dataTables.min.js"></script>
        <link rel="stylesheet" type="text/css" href="//cdn.datatables.net/1.10.20/css/jquery.dataTables.min.css">
        <title>Admin: users page</title>
    </head>
    <body>
    <div id="wrapper">

        <!-- Sidebar -->
        <div id="sidebar-wrapper">
            <ul class="sidebar-nav">
                <li class="sidebar-brand">
                    <a href="#">
                        Administration
                    </a>
                </li>
                <li>
                    <a href="/admin/users">Users</a>
                </li>
                <li>
                    <a href="../index">Log out</a>
                </li>
            </ul>
        </div>
        <!-- /#sidebar-wrapper -->

        <!-- Page Content -->
        <div id="page-content-wrapper">
            <table id="table" class="display">
                <thead>
                <tr>
                    <th>id</th>
                    <th>firstname</th>
                    <th>lastname</th>
                    <th>email</th>
                </tr>
                </thead>
                <tbody></tbody>
            </table>
        </div>
        <!-- /#page-content-wrapper -->

    </div>
    </body>
    </html>


管理员:用户页面
身份证件 名字 姓氏 电子邮件
好的,我的html操作按钮中缺少了一列 将操作添加到表后-一切正常

使用选项填充数据表。用外部调用的jQuery
.ajax()
填充表会导致不同类型的问题-请参阅我的一个示例中的详细信息(顺便说一句,如果这个答案有助于您解决问题,那么upvote是非常受欢迎的;)