0

以下のコードは、次のことを行います。

  1. データを取得するために getData.php にリクエストを送信します。
  2. サーバー側のコードがデータを取得するために動作しているときに、スピナーが表示されます。
  3. データが来るとスピナーは非表示になります

私の問題は、データが来ていなくてもスピナーを非表示にする方法がわからないことです。

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": []
}';     
4

2 に答える 2

2

私は解決策を見つけました:

fnDrawCallback: function () {
  var rows = this.fnGetData();
  if ( rows.length === 0 ) {
     spinner.stop();
  }
},
于 2013-10-21T13:55:29.673 に答える
0

要素を検査しようとしました

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

適切にテストする時間はありません..

于 2013-10-19T19:52:08.677 に答える