2017-07-26 3 views
0

J'ai une liste comme points de pagination pour un carrousel. Chaque élément sélectionné ajoute une classe sélectionnée et je peux facilement obtenir l'index de cet élément de liste.obtenir l'index précédent de l'élément de liste sélectionné et le comparer à l'actuel

Je dois pouvoir comparer l'index de l'élément de liste sélectionné avec celui de l'élément de liste sélectionné précédemment afin que je puisse déterminer si j'ai besoin d'ajouter une animation.

Idéalement je veux être en mesure de faire ce qui suit

if(currentIndex > 3 && currentIndex > oldIndex) 
{do stuff} 
+0

Comment récupérer-vous l'indice actuel? – PeterMader

+0

var currentIndex = $ (this) .index(); – user1464853

+0

Initialisez oldIndex à -1. Faites un chèque; si oldIndex vaut -1, alors set oldIndex = currentIndex, sinon si currentIndex> oldIndex (fait des choses ... ici aussi, alors set oldIndex = currentIndex). –

Répondre

0

Créer une variable qui stockera l'ancien indice. Lorsque l'élément suivant est sélectionné, utilisez la valeur de cette variable pour faire ce que vous voulez. Lorsque vous avez terminé, attribuez la nouvelle position à la variable. Lorsque l'utilisateur sélectionne à nouveau, ce sera l'ancien index.

Je ne connais pas votre code, donc j'espère que vous comprenez:

var oldIndex = -1; // -1 indicates that the user hasn't yet selected any item 
$('.all-the-items').click(function() { 
    var currentIndex = $(this).index(); 
    if (oldIndex === -1) { 
    // the user has selected for the first time 
    } else { 
    // oldIndex holds the old index, currentIndex holds the current index 
    // do stuff with oldIndex and currentIndex 
    if(currentIndex > 3 && currentIndex > oldIndex) { 
     // ... 
    } 
    } 
    oldIndex = currentIndex; // set the old index to the current index 
});