2017-06-18 1 views
0

Je suis si proche! et un peu confus ... alors dites-moi si je complique trop les choses.API Giphy: Définition d'un nouvel attribut de source pour les GIF aléatoires avec jQuery

J'utilise le public Giphy API pour remonter un gif aléatoire (tag = chien dans l'exemple ci-dessous) et je veux en parcourir de nouveaux à chaque fois que je clique sur un bouton.

Dans l'exemple ci-dessous, je reçois la console pour enregistrer "succès", je n'arrive juste pas à comprendre comment définir la nouvelle URL aléatoire comme source.

Toute aide est appréciée, merci d'avance!

HTML:

<div class="iframe"> 
    <iframe src="https://giphy.com/embed/26FmRLBRZfpMNwWdy" id="giphy-embed"> 
    </iframe> 
</div> 

<button type='button' class="btn btn-default" id="new"> New GIF 
</button> 

JS/jQuery:

$("#new").click(function() { 
    var gif = $('#giphy-embed').attr('src', function(newGIF){ //This is where it will go! 
    $.ajax ({ 
    url: "//api.giphy.com/v1/gifs/random?api_key=dc6zaTOxFJmzC&tag=dog", 
    type: "GET", 
    success: function(response) { 

     console.log("success"); //This is what I get, just need to set the new URL as the src 
    }, 
    error: function(e) { 
     console.log("uh oh"); 
     } 
    }); 
    }); 

}); 

Répondre

0

Essayez de mettre à jour l'iframe src dans le cadre de la fonction de la réussite au lieu.

$("#new").click(function() { 
//This is where it will go! 
    var imgSrc; 
    $.ajax ({ 
    url: "//api.giphy.com/v1/gifs/random?api_key=dc6zaTOxFJmzC&tag=dog", 
    type: "GET", 
    success: function(response) { 
     // console.log(response); 
     imgSrc = response.data.image_url; 
     $("#giphy-embed").attr("src", imgSrc); 
     return false; 
    }, 
    error: function(e) { 
     console.log("uh oh"); 
     } 
    }); 
}); 
+0

Je vois d'où vous venez et je l'aime! Ça ne marche tout simplement pas. La console apporte toute la réponse ajax et tout. Voici un lien vers le CodePen https://codepen.io/benthom21/pen/qjRzJV?editors=1011 –

+0

Cela fonctionne très bien - essayez-le sur votre hôte local ou votre serveur. Il y a une erreur de contenu mixte sur le codepen car il est chargé sur https et giphy est http. – partypete25

+0

Je veux dire le response.data.image_url est http. J'ai fait un tweak juste pour mettre à jour l'id de l'image src. Cela fonctionnera. imgSrc = response.data.id; $ ("# giphy-embed"). attr ("src", "https://giphy.com/embed/"+imgSrc); – partypete25