2013-04-07 4 views
0

я хочу, чтобы получить YouTube видеоJSON YouTube апи

пример кода

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 

Тогда вы можете получить доступ к й в любом месте, просто говоря, «х» или «window.x», если вы хотите быть более конкретными.

+0

Я знаю метод переменной окна, но почему не работает метод переменной объекта? youstinky.x? –

+1

В $ .getJSON вы создаете анонимную функцию, которая действует как обратный вызов. В любом случае «это» в этом обратном вызове не относится к youstinky, оно относится к чему-то другому, поэтому, когда вы устанавливаете this.x, он устанавливает x на что-то другое. Способом исправить это было бы присвоение переменной «this» переменной за пределами обратного вызова. Вот пример http://jsfiddle.net/EtH8A/. –

+0

Я понимаю, поэтому решение - это только метод переменных окна? –

Смежные вопросы