空ajax响应时的数据表回调/事件

时间:2013-10-17 18:32:10

标签: jquery-datatables

以下代码执行以下操作:

  1. 向getData.php发送请求以获取一些数据。
  2. 当服务器端代码正在检索数据时,将显示微调器。
  3. 数据到来时隐藏微调器
  4. 我的问题是,即使没有数据出现,我也不知道如何隐藏微调器。

    jquery代码:

    <script type="text/javascript">
    
    $(document).ready(function() {
    
        var spinnerOpts = {
          // Options for the spinner here...
          ...   
       };
    
       var target = document.getElementById('spinn');
       var spinner = new Spinner(spinnerOpts);
    
    
        $('#myTable').dataTable( {
           "bProcessing": true,
           "sAjaxSource": "getData.php",
           "fnPreDrawCallback": function() {                    
             spinner.spin(target);    // Show the spinner
           },
           "fnRowCallback": function() {                        
           spinner.stop();   // Hide the spinner
          }
    
        } );
    } );                
    
    </script>
    

    以下代码在没有数据时从getData.php发送json字符串:

    echo '{
        "sEcho": 1,
        "iTotalRecords": "0",
        "iTotalDisplayRecords": "0",
        "aaData": []
    }';     
    

2 个答案:

答案 0 :(得分:2)

我找到了解决方案:

fnDrawCallback: function () {
  var rows = this.fnGetData();
  if ( rows.length === 0 ) {
     spinner.stop();
  }
},

答案 1 :(得分:0)

你试图检查元素

   "fnRowCallback": function( e ) {                        
   console.log(e);   // maybe there is a state of the response in it ;) ?
   spinner.stop();   // Hide the spinner
  }

没有时间正确测试..