Je suis un codeur débutant, j'ai appris CSS, HTML et Jquery dans un stage cet été. Mon patron veut que je crée une galerie qui a une image principale, puis deux boutons pour afficher l'élément suivant ou précédent. Il veut que j'utilise json, afin qu'ils puissent facilement ajouter et supprimer des images. Je l'ai écrit de telle sorte que, je commence par une variable 0, puis quand je clique sur prev/next, il décrémente/incrémente la variable, puis retourne à la json pour chercher l'image correspondante. Le seul problème est que si j'ai quatre images, si la valeur passe en dessous de zéro ou au-dessus de 3, ça casse.
Comment puis-je avoir le jquery dire si la recherche json retourné indéfini, de sorte que je peux l'avoir en boucle ou désactiver le bouton? Je suppose qu'une déclaration if serait idéale, mais je vous laisse le soin de le faire.Galerie avec les boutons jquery, json et prev/next. Si la requête json renvoie undefined, la galerie se casse
$(document).ready(function(){
$.getJSON("layout.json",function(data){
// Then put the first picture up from the json data...
$("<img />").attr({
id: "0-middle_image",
class: "middle_image",
src: data.items[0].image ,
})
.appendTo("div#middle_image");
// because I'm starting with the zeroth object, middleimage variable is 0
var mi_val = 0
// when you click one of the cycle buttons...
$("div.cycle_button").click(function(){
//if it is the previous, decrement mi_val, else, increment mi_val
if ($(this).attr("id") == "button_prev")
{--mi_val;}
else {++mi_val;}
//then, call the appropriate image object from the json
$("img.middle_image").fadeOut(500,function(){
$(this).attr({src: data.items[mi_val].image})
.fadeIn(500);
});
});
});
});
Juste pour clarifier les choses, le fichier JSON ne vient pas d'une page Web externe, mon problème est que si je demande quelque chose comme " data.items [5] .image "lorsque le fichier json ne va que jusqu'à" data.items [4] .image ", il se transforme en une erreur dans firebug en me disant qu'il vient bakc indéfini, mais" if (! var) "didn ne fonctionne pas, ni la solution "typeof". Bien que je puisse le faire mal. – DavidR