2013-04-07 93 views
0

我想YouTube视频JSON YouTube API取得

代码示例

var youstinky = { 

     getYoutubeData : function(){ 
     $.getJSON("http://gdata.youtube.com/feeds/api/standardfeeds/most_popular?v=2&alt=json",function(data){ 
     this.x = data.feed.entry.map(function(dat){ 
      return { 
      'link' : dat.link[0].href, 
      'name' : dat.title.$t 
      }; 
     }); 
     }); 
     } 

    }; 

$(document).ready(function(){ 
youstinky.getYoutubeData(); 
}); 

我没能获得this.x可变youstinky物体之外,

如何我能做什么?

回答

0

只是让x成为一个全局变量。

window.x = // Your code 

而不是...

this.x = // Your code 

然后你就可以,如果你想更具体的只是说 “X” 或 “window.x” 任何地方访问X。

+0

我知道窗口变量的方法,但为什么不工作对象变量的方法? youstinky.x? – 2013-04-07 20:08:22

+1

在$ .getJSON中,您创建了一个匿名函数,充当回调函数。在所有可能的情况下,这个回调中的“this”并不是指你感兴趣的,它指的是其他的东西,所以当你设置this.x时,它将其他设置为x。解决这个问题的一种方法是将“this”分配给回调之外的变量。这里是一个例子http://jsfiddle.net/EtH8A/。 – 2013-04-07 20:09:53

+0

我明白了,所以解决方案只是窗口变量的方法? – 2013-04-07 20:13:06