0

我正在使用 Bootbox 显示一个包含表格的弹出窗口,这部分效果很好。

但现在我想在刚刚创建的表上使用 jQuery DataTables 插件进行排序。这需要我调用我刚刚在 bootbox 中创建的表上的 DataTables 插件。

但是在创建引导框弹出窗口后,我找不到任何调用 javascript/jQuery 函数的方法,如果您在引导框函数内编写代码,它只会在引导框弹出窗口关闭时发生。

如何在启动框弹出窗口弹出并且它仍然存在时运行功能?

$(document).on('click', ".myButton", function () {
        var userName = "<h2>"+ ($(this).data("username")) +"</h2>";
        var tableHeader = "<thead><tr>" +
                          "<th>Header 1</th>" +
                          "<th>Header 2</th>" +
                          "<th>Header 3</th>" +
                          "</tr></thead>";
        var tableData = $(this).data("value");

        var table = "<table id='myTable' class='table'>" + tableHeader + "<tbody>" + tableData + "</tbody>" + "</table>";
        bootbox.alert(userName + table, function (result) {
        });
    });

我需要在这段代码中放置的基本上是这个

var oTable = $('#myTable').dataTable({
          null, null, null
        ]
    });

我可能需要在弹出窗口之间销毁并重新创建数据表,但这不是现在的问题。

4

1 回答 1

0

它实际上只是在 bootbox 调用之后放置它。但这不会导致异步问题吗?即,如果用户使用慢速计算机或表/引导箱很重,那么它将尝试在引导箱实际完成之前调用 dataTables 插件

$(document).on('click', ".myButton", function () {
            var userName = "<h2>"+ ($(this).data("username")) +"</h2>";
            var tableHeader = "<thead><tr>" +
                              "<th>Header 1</th>" +
                              "<th>Header 2</th>" +
                              "<th>Header 3</th>" +
                              "</tr></thead>";
            var tableData = $(this).data("value");

            var table = "<table id='myTable' class='table'>" + tableHeader + "<tbody>" + tableData + "</tbody>" + "</table>";
            bootbox.alert(userName + table, function (result) {
            });

            var oTable = $('#myTable').dataTable({
                null, null, null
            ]
            });
});
于 2014-03-05T08:58:04.917 回答