Une partie d'un site Web sur lequel je travaille est une page vidéo. Je retire les vidéos d'un compte YouTube en accédant à l'API YouTube Data. Saisir les vidéos dans aucun ordre particulier et non triés fonctionne très bien, mais quand j'essaie de les classer par catégories, je commence à avoir des problèmes. Disons qu'il y a trois catégories: Fruits, Légumes, Animaux. Au lieu de saisir toutes les vidéos à la fois, je veux saisir toutes les vidéos marquées avec des fruits, les ajouter à un <ul id="Fruit">
. Ensuite, demander toutes les vidéos marquées avec des légumes, etcBouclage via plusieurs requêtes JSON (YouTube Data API)
Lors du démarrage, j'ai eu l'alerte du navigateur quand il avait fini d'obtenir la demande, puis en ajoutant la liste appropriée. Après avoir sorti l'alerte, ça a quand même fonctionné, mais pas comme je m'y attendais. Soit la boucle avance trop vite, soit pas du tout, mais je n'arrive pas à repérer l'erreur. Ce qui finit par arriver, c'est que toutes les vidéos sont placées dans une seule liste, <ul id="Vegetable">
.
Veuillez noter: J'utilise un plugin appelé jGFeed qui enveloppe la fonction jQuery getJSON, donc je crois que vous pouvez le traiter comme tel.
var videoCategories = ['Fruit', 'Vegetable', 'Pets'];
for (var i = 0; i < videoCategories.length; i++) {
var thisCategory = videoCategories[i];
$.jGFeed('http://gdata.youtube.com/feeds/api/users/username/uploads?category='+thisCategory,
//Do something with the returned data
function(feeds) {
// Check for errors
if(!feeds) {
return false;
} else {
for(var j=0; j < feeds.entries.length(); j++) {
var entry = feeds.entries[i];
var videoUrl = entry.link;
$('ul#'+thisCategory).append('<li><a href="#" id="'+videoUrl+'">'+entry.title+'</a></li>');
}
});
}
Je ne sais pas si C'est le problème, mais le crochet d'extrémité pour la fonction semble être manquant. –
Aussi, ne devrait-il pas s'agir de feeds.entry [j] plutôt que d'entrée [i]? –
Hé, oui, c'est vrai sur les deux points. Une erreur de transposition de la source d'origine. Je l'ai vraiment fait fonctionner, et posterai la solution plus tard. Mais merci pour le commentaire! – saibot