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

标签 javascript json variables

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

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

关于Javascript 初学者 - 全局变量不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27850153/

相关文章:

javascript - 如何在不使用 QUnit.push 的情况下为 QUnit 编写新的断言函数?

javascript - WebRTC使用JSON设置描述

ruby - 我如何从 ruby​​ 访问 gmail 收件箱?有什么api吗?

java - 将 Google Spreadsheets json 响应映射到 java 对象返回错误消息

php - 如何查看另一个 php 文件中定义的变量?

javascript - jQuery 在单击时获取 href 中的 img src

javascript - 使用 PhoneGap 自定义 iPhone 相机 UI

javascript - 将 Google 日历数据与基于 D3.js 的日历集成

python - 什么是无值?

c - 在不同范围内设置和使用变量在 C 中不起作用