0

getJSON コマンドの外部からデータにアクセスするにはどうすればよいですか?

//LOAD JSON
$.getJSON("users.js", function(data) {
   numberOfPieces = data.users.length;
   alert("Loaded "+numberOfPieces); //   <------WORKS
});

//Select a piece
var pieceSelected = Math.floor(Math.random() * (numberOfPieces));
alert("pieceSelected: "+data.users[pieceSelected].Name); //   <------RETURNS "data is not defined"

ありがとうございました!

4

1 に答える 1

1

あなたの問題は、関数パラメーターがその関数にスコープされ、関数の外部からアクセスできないことです。スコープ外の変数を使用すると、期待どおりに動作するはずです。

var piecesData;

//LOAD JSON
$.getJSON("users.js", function(data) {
   piecesData = data;
   numberOfPieces = data.users.length;
   alert("Loaded "+numberOfPieces); //   <------WORKS
});

//Select a piece
var pieceSelected = Math.floor(Math.random() * (numberOfPieces));
alert("pieceSelected: "+ piecesData.users[pieceSelected].Name);
于 2013-02-19T21:56:43.883 に答える