【问题标题】:execute a function before dataTable.net draws table在 dataTable.net 绘制表格之前执行一个函数
【发布时间】:2013-01-18 12:56:46
【问题描述】:

我正在使用dataTable.net 插件在我的 html 页面上绘制表格,它工作正常。我想执行一个函数,比如 xyz(),其中包含一个 ajax 调用(ajax 调用也可以按照我的意愿执行)。在绘制表格之前我想执行xyz()函数,但它是先绘制表格然后执行函数。 我打电话给xyz()

    $(function () {
    xyz();

    // dataTable.net code.

    });

    xyz()
    {
       $.ajax(
       {
          // some code
       }); 
    }

实际上,我正在从服务器获取一些数据,并尝试将其呈现给 dataTable.net 但是dataTable.net是先绘制表格,然后在ajax调用完成之后,虽然我在dataTable.net之前调用ajax。

请帮帮我。

【问题讨论】:

    标签: jquery ajax datatable


    【解决方案1】:

    我不确定,但我认为 JavaScript 不等待 ajax 完成意味着返回一些数据,它只是在继续。我认为,它只是执行 ajax 功能并进一步发展。 目前我通过在ajax成功绘制dataTable来管理它,如果有人可以改进它,请编辑它。

    【讨论】:

      【解决方案2】:

      试试这个:-

      $(document).ready(function() {
            xyz();
              $('Your Div ID').load(function() {
                 // // dataTable.net code.
               });
          });
      

      【讨论】:

      • 感谢您的回复,但它不起作用。它给出错误 - SyntaxError: invalid label
      • 请在您的 Div ID 处添加任何 div id。
      【解决方案3】:

      http://legacy.datatables.net/usage/callbacks,使用回调“fnInitComplete”

      $(document).ready( function() {
          $('#example').dataTable( {
              "fnInitComplete": function(oSettings, json) {
                //check first draw
                  if (json.draw == 1) {
                      xyz(); //call your function here
                  }
              }
          });
      });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多