2016-12-28 71 views
0

我只需要访问我范围外的我的instgram数据,请帮助我解决这个问题。一切工作正常,我在JavaScript范围之外访问Instagram数据

$(document).ready(function() 
    { 
      var apiurl = "https://api.instagram.com/v1/users/4322593457/media/recent/?access_token=4322593457.15d3a7f.13779606843446ab834b0e8512412d4a&count=5&callback=?"; 
      $.getJSON(apiurl, function (data) { 

        suatroot = data.data; 
       $.each(suatroot, function (key, val) { 

        var itemobj = val.images.low_resolution.url; 
        var hrefobj = val.link; 
        var captobj = val.caption.text; 
         data = captobj; //Can I access this??????? 
        var suatpaket = "<a target='_blank' href='"+hrefobj+"'><img src='" + itemobj + "'/><br>"+captobj+"<br></a>"; 
        $(".instagram").append(suatpaket); 
       }); 
      }); 
     }); 
Console.log(suatroot); //undefined here I want object 
+0

把Console.log(suatroot);在$(document).ready() – Kenny

+0

的结尾处,Javascript不遵循ajax请求的响应。只需一行一行地运行。因此,$ .getJson javascript不会等待并传递给Consolo.Log代码行,并且suatroot变量在此处未定义。 – Mehmet

回答

0

创建将接受suatroot作为参数,就像聪明的函数:

function suatrootCallback(suatroot){ 

    // code to handle suatroot/data.data 

} 

$(document).ready(function(){ 

      var apiurl = "https://api.instagram.com/v1/users/4322593457/media/recent/?access_token=4322593457.15d3a7f.13779606843446ab834b0e8512412d4a&count=5&callback=?"; 
      $.getJSON(apiurl, function (data) { 

       var suatroot = data.data; // do not create global variable 
       suatrootCallback(suatroot); // call the callback 

       $.each(suatroot, function (key, val) { 

        var itemobj = val.images.low_resolution.url; 
        var hrefobj = val.link; 
        var captobj = val.caption.text; 
         data = captobj; //Can I access this??????? 
        var suatpaket = "<a target='_blank' href='"+hrefobj+"'><img src='" + itemobj + "'/><br>"+captobj+"<br></a>"; 
        $(".instagram").append(suatpaket); 
       }); 
      }); 
}); 
+0

我怎样才能访问函数callbackInstagram(data){console.log(data); }外面? –

+0

@AnupChaudhary,你不能。 AJAX请求是异步的。 –

0

只能被initalized后访问Instagram的数据,让你可以更好的调用一个函数之后的回应。

$(document).ready(function() { 
    var apiurl = "https://api.instagram.com/v1/users/4322593457/media/recent/?access_token=4322593457.15d3a7f.13779606843446ab834b0e8512412d4a&count=5&callback=?"; 
    $.getJSON(apiurl, function (data) { 
     suatroot = data.data; 
     $.each(suatroot, function (key, val) { 
      var itemobj = val.images.low_resolution.url; 
      var hrefobj = val.link; 
      var captobj = val.caption.text; 
      data = captobj; 
      callbackInstagram(data); //accessed here 
      //window.data = data  also if you want to access if globally after initailized 
      var suatpaket = "<a target='_blank' href='"+hrefobj+"'><img src='" + itemobj + "'/><br>"+captobj+"<br></a>"; 
      $(".instagram").append(suatpaket); 
     }); 
    }); 
}); 



function callbackInstagram (data) { 
    console.log(data); 
} 

希望有帮助!谢谢

+0

我怎样才能访问函数callbackInstagram(data){console.log(data);} } –

+0

只需将该函数调用为'callbackInstagram()',或者您可以解释一下您真正需要处理的数据。 –