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

时间:2015-01-08 21:52:32

标签: javascript json variables

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

//[...]
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

}   

1 个答案:

答案 0 :(得分:1)

$.getJSON是异步的,这意味着如果您在getInfo方法中发出提醒,则会在<{em> alert(title)之后触发,即使它是在它之前。

你可以解决这个问题:

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