2011-05-24 10 views
0

ねえねえ。私はAjaxをロードしたデータテーブルを持っています。ロードはうまくいっていますが、私が気づくのは、ページ上のテキストがロードされていることですが、ヘッダイメージとフッタイメージはAjaxコールの後に読み込まれるということです。これはページ上で少し奇妙に見えます。私はこれを回避する方法があるのだろうかと思っています。私はjQueryのsetTimeOutメソッドについて知っていますが、データテーブルでそのメソッドを使用する方法については困惑しています。ページロード後にajaxを使用してdatatable(jquery)をロードし、イメージを最初に読み込ませます。

$(document).ready(function() { 

    var selected; 
    var selectedOutput; 
    var template; 
    var submitButton; 

    var insertedTable = $('#pkgLineTable').dataTable({ 
     "bJQueryUI": true, 
     "sPaginationType": "full_numbers", 
     "bPaginate": true, 
     "bLengthChange": true, 
     "bFilter": true, 
     "bSort": false, 
     "bInfo": true, 
     "bAutoWidth": false, 
     "bProcessing": true, 
     "bServerSide": false, 
     "sAjaxSource": '@{Overview.getPkgLineList()}', 
     "fnServerData": fnServerObjectToArray(['shortname', 'description'])    
    }); 
}); 

    fnServerObjectToArray = function (aElements) {  

    return function (sSource, aaData, fnCallback) { 
     $.ajax({ 
      "dataType": 'json', 
      "type": "GET", 
      "url": sSource, 
      "data": aaData, 
      "success": function (json) { 
       var a = []; 
       $.each(json, function(index, item) {  
        var inner = []; 
        for (var i = 0, iLen = aElements.length; i < iLen; i++) { 
         inner.push(item[aElements[i]]); 
        } 
        a.push(inner); 
       }); 
       json.aaData = a; 
       fnCallback(json); 
      } 
     }); 
    } 
} 

答えて

1

あなたがイメージが終了した後に、AJAXをロードしたい場合は、代わりに.readyのloadを使用します。

$(window).load(function() { 

    var selected; 
    var selectedOutput; 
    var template; 
    var submitButton; 
関連する問題