Javascript 初学者 - 全局变量不起作用

Javascript beginner - global variable isnt working

我想给出全局变量 "title" 的值(在函数 getInfo 中定义),但我在警报(标题)处得到的只是 "undefined"。当然,我可以将警报放在最后一个函数中,但为什么我不能这样工作?

//[...]
var title;//global var

$(document).ready(
function(){                    
    $.getJSON(url, displayImages)//open func displayImages
});

function displayImages(data) {                                                                                                                                              
    $.each(data.photoset.photo, function(i,item){
            $.getJSON(url+item.id+"&format=json&jsoncallback=?", getInfo);//open func getInfo
            alert(title);//output: undefined

    });     

}

function getInfo(data2){
    title = data2.photo.title._content;//get value of title from json

}   

$.getJSON 是异步的,这意味着如果您在 getInfo 方法中放置一个警报,它将在 之后 触发 alert(title)即使它前面有一行。

您可以这样解决:

$.getJSON(url+item.id+"&format=json&jsoncallback=?", function(data) { 
  getInfo(data);
  alert(title);
});