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);
});
我想给出全局变量 "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);
});