You're probably not waiting for the getJSON
function to complete. It's asynchronous which means that code under it will execute before code in the callback function.
alert(1);
$.getJSON("tljson.json",function(result){
alert(2);
items = JSON.stringify(result);
});
alert(3);
The example above actually alerts 1
then 3
then 2
. Note that the 3
is before the 2
.
コードを修正するには、コールバック関数が呼び出されて値を代入できるようになるまで待ってから、items
その変数を使用する必要があります。解決方法は状況によって異なる場合がありますが、簡単なアイデアは、コールバック内から何らかの関数を呼び出すことです。
$.getJSON("tljson.json",function(result){
items = JSON.stringify(result);
doSomethingWithItems();
});
function doSomethingWithItems() {
alert(items); // Correctly alerts items.
}