2013-02-17 66 views
0

我有一个函数,通过AJAX调用拉入数据。我正在创建一个我想在其他函数中访问的对象。所以我想将数据发送到另一个全局对象。jquery全局访问数据,将其推入一个对象

这里是目前的javascript:

var foursquareMapData = []; 

function MapData() { 

    $.ajax({ 
     dataType: 'jsonp', 
     url: 'https://s3.amazonaws.com/sxsw_trending/sxsw_trending.json', 
     jsonp: "callback", 
     jsonpCallback: "sxswTrending", 
     success: function (data) { 
      //console.log(data); 
      // var foursquareMapData = []; 
      for (var i = 0; i < data.Trending.length; i++) { 

       var mapData = { 
        index: i + 1, 
        lat: data.Trending[i].lat, 
        lng: data.Trending[i].lng, 
        count: data.Trending[i].hereNow, 
        address: data.Trending[i].address 
       } 
       //console.log(mapData); 
       foursquareMapData.push(mapData); 
      } 
      //console.log(foursquareMapData); 
     } 
    }); 

} 
console.log(foursquareMapData); 

推 '属于MapData' 对象到foursqureMaData似乎并不工作。我可能没有正确地做到这一点?

+0

希望这可以帮助您了解Ajax如何工作:http://stackoverflow.com/q/14220321/218196。 (虽然在你的情况下,你实际上并没有使用Ajax,但结果是一样的) – 2013-02-17 19:07:20

+0

这是一个很好的回应。谢谢 – Xtian 2013-02-18 18:28:30

回答

0

这是因为您在ajax调用完成之前调用控制台日志。尝试在你的ajax成功函数结束时输出它,那么它应该是正确的。


哦,只是看到你已经有一个console.log在成功函数的结尾。没有显示正确的数据?


你确实打电话给MapData()某处吧?因为它不在你的代码中。

+0

是的,我在$(文档).ready(函数(){ – Xtian 2013-02-17 19:12:01

+0

@ Xtian)方面调用函数,我刚刚将您的确切代码复制到jsFiddle中,并按预期工作:http://jsfiddle.net/ C6TKV / – Andy 2013-02-18 08:06:50