2016-03-18 17 views
0

私はデバッグモードでのみ動作し、console.logにビークポイントを持つ次のコードを持っています。配列pageDataはコンパイルされると空になり、最終的に次の各ループはコンパイルされません。私は、配列がロードされるまでデバッガを停止する方法をオブジェクトの100を取得する場合、私はajax呼び出しでわずか10オブジェクトを取得しています。 function(responses) { responses.data.sort(function(a, b) { var aa = a.were; var bb = b.were; return bb - aa; }); $.each(responses.data, function(index, value) { var pageData1 = { were: value.were, id: value.id, name: value.name, category: value.category, address: value.location.street, city: value.city, talk: value.talki, link: value.link }; pageData.push(pageData1); }); console.log(pageData); $.each(pageData, function(key, value) { table += "<tr>" + "<td><a href="+pageData[key].link+">"+pageData[key].name+"</a> </td>" + "<td>"+pageData[key].were+" </td>" + "<td> "+pageData[key].address+"</td>" + "<td> "+pageData[key].talk+"</td>" + "</tr>"; }); $("#tabledata").show(); $("#messages").append(table); });コードは、デバッガモードでしか動作しません。それ以外の場合、consol.logのブレークポイントは動作しません。

答えて

2

アヤックスが完了したときにあなたのfunction(responses)のみが呼び出されます。これは、編集

//ajax call , 
      function(responses) { 
       responses.data.sort(function(a,b){ 
        var aa=a.were; 
        var bb=b.were; 
        return bb-aa; 
       });   
       $.each(responses.data, function (index, value) { 
         var pageData1={ 
         were: value.were, 
         id: value.id, 
         name: value.name, 
         category: value.category, 
         address: value.location.street, 
         city:value.city, 
         talk: value.talki, 
         link:value.link 
         } 
        pageData.push(pageData1); 
        }); 
      }); 
      console.log(pageData); 
    $.each(pageData, function(key,value){ 
     table=table+"<tr><td><a href="+pageData[key].link+">"+pageData[key].name+"</a> </td><td>"+pageData[key].were+" </td><td> "+pageData[key].address+"</td><td> "+pageData[key].talk+"</td></tr>"; 
     }); 
    $("#tabledata").show(); 
    $("#messages").append(table); 

すべてのブラウザで起こります

Javascriptは完了するのを待たず、実行時に何も残さずに戻る前にconsole.logを実行します。

debugモードでは、console.log(実行前)で停止して、async ajax呼び出し時間を指定して、pageData変数を完了して入力します。

このデータに依存するすべてのコードは、データが返されるときにすべてが一緒に呼び出されるように、$ .each関数の後に来なければなりません。

+0

これは以下のように役立ちました。ありがとう@wainage – flyingkandi

関連する問題