0

JSON を取り込みますが、残りのコードを実行する前にその情報が必要です。私はjQueryに非常に慣れていないので、 $.when() を見て、AJAX asyncをfalseに設定しています(これはおそらく最良のオプションではありません)。また、変数が AJAX 呼び出しの外で定義されていないという問題もあります。ここに私のコードがあります - どんな助け/提案も本当に感謝しています.

//AJAX 呼び出しが行われている間は何も表示しません (ここに読み込みスピナーが追加されます)

$('body').css('display','none');

//画像をロードするための Ajax 呼び出し

var test = $.ajax({
  dataType: "json",
  url: "../quiz/scripts/test.json",
  success: function() {
    console.log("Loaded in AJAX");
  var results = test.responseJSON.Items.Pics;
  console.log(results);
  $('body').css('display','block');
}
});

// 結果変数を取得しようとしています

console.log("Loaded Outside of AJAX");
console.log(results);

コンソールは私にこれを与えています:

    Loaded Outside of AJAX [VM] quiz.js (23396):18

    Uncaught ReferenceError: results is not defined [VM] quiz.js (23396):19

    XHR finished loading: "http://localhost:8888/.....etc"

    Loaded in AJAX [VM] quiz.js (23396):9

    [Object, Object, Object, Object, Object]

「Loaded in AJAX」というテキストを「Loaded Outside of AJAX」の前に表示する方法と、変数「results」を AJAX 呼び出しの外で使用する方法を教えてください。

4

1 に答える 1

1

これを試して:

$.getJSON("../quiz/scripts/test.json", null, function(data) { 
    //If you want to, you can call the data here.
}).done(function(data) {
  console.log("The AJAX call is finished! Whoop dee doo!");
  console.log(data);
}); 

必要に応じて、ここでJSON リクエストがどのように形成されるかについての良いリファレンスを見つけることができます。API ドキュメントから直接、かなりのことを学びました。

于 2013-11-11T02:58:10.310 に答える