2015-01-08 3 views
0

전역 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 

} 
+0

이유는'경고 (제목)입니다'getInfo''전에 실행되고있다. 왜'getJSON'이 데이터를 가져 오는 데 약간의 시간을 소비하기 때문에'alert (title)'이 실행되는 동안 그 이유가 무엇인지. – neo

답변

1

$.getJSON 당신이 getInfo 방법에 경고를 넣어 경우, 그것이 그 전에 라인이 경우에도alert(title)을 해고 즉, 비동기입니다.

당신 같은이 문제를 해결할 수 :

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