2016-06-13 3 views
-4

Je réalise une mini galerie où je peux exposer mes oeuvres. Ce que je voulais faire, c'est que chaque fois que je devrais cliquer sur l'image du bouton "droit" jusqu'à la dernière photo, il répétera toujours les images depuis le début. J'ai essayé la déclaration if mais rien ne se passe. Un peu d'aide sera très appréciée, merci!Images en boucle infinies Javascript

$(function(){ 

var currIndex; 

//$("#header").hide(); 

$("ul li img").click(function() { 

    currIndex = $(this).parent(); 

    var selectsrc = $(this).attr("src"); 
    $("#display").attr("src", selectsrc); 

    $("#gray").slideDown(); 
    $("#white").fadeIn(); 
}); 

$("#gray").click(function(){ 
    $("#gray").slideToggle(); 
    $("#white").fadeOut(); 
}); 

$("#right").click(function(){ 

    var numOfItems = $("ul li img").length; 

    var nextIndex = currIndex.next(); 
    var nextImg = nextIndex.children("img").attr("src"); 
    $("#display").attr("src", nextImg); 
    currIndex = nextIndex; 

    if (currIndex == numOfItems-1){ 
     alert("HELLO"); 
     currIndex = 0; 
    } 

    else { 
     alert("HI"); 
     currIndex++; 
    } 


}) 



}); 
+0

'.next()': _Obtenir le frère suivant de chaque élément de l'ensemble des éléments correspondants. Si un sélecteur est fourni, il ne récupère le frère suivant que s'il correspond à ce sélecteur. Ce n'est pas un nombre (index). – melancia

+0

'J'ai essayé l'instruction if mais rien ne se passe'' uhm. vous avez des alertes là-bas, sûrement au moins une d'entre elles s'est produite, ou une erreur est arrivée à votre console. –

Répondre

1

Je n'ai pas essayé votre code, mais il semble que dans la fonction clic droit ...

if (currIndex == numOfItems-1){ 
    alert("HELLO"); 
    currIndex = 0; 
    } 
    else 
    { 
     alert("HI"); 
     currIndex++; 
    } 

devrait être ...

currIndex++; 

    if (currIndex >= numOfItems){ 
    currIndex = 0; 
    } 

Et votre clic gauche La fonction devrait incrémenter le currIndex, et vous devez d'abord le mettre à zéro. :-)