2013-10-17 62 views
0

下面的代碼做以下的事情:數據表的回調/事件時,空的Ajax響應

  1. 發送給訪問getdata.php的請求得到一些數據。
  2. 當服務器端代碼正在檢索數據時顯示微調器。當數據已經

我的問題是,我不知道該怎麼做隱藏,即使沒有數據來微調

  • 微調器是隱藏的。

    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

    我找到了解決辦法:

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

    你試圖檢查元件

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

    沒時間適當地測試它..