je dois sélectionner une grange spécifique d'éléments jquery basés là-bas index à l'aide :eq()
(ou quelque chose d'autre si vous avez une meilleure solution)sélectionner une série d'éléments dom basé sur l'indice
ma structure html est la suivante:
<ul>
<li>slide0</li>
<li>slide1</li>
<li>slide2</li>
<li>slide3</li>
<li>slide4</li>
</ul>
Lorsque l'utilisateur passe glisse sur la slide2 je dois sélectionner li:eq(0), li:eq(1)
et li:eq(3), li:eq(4)
séparemment, parce qu'ils ont une animation différente.
Ceci est ma solution, mais cela se sent un peu en désordre ...
var $slides, theOthers, slidesTotal;
$slides = $('ul > li');
slidesTotal = $slides.length;
theOthers = function(slideIndex ,slidesTotal){
var before = [], after = [], i=0;
while (i<=slideIndex - 1){
before[i] = ":eq(" + i + ")"
i++
};
while (i <= slidesTotal) {
after[i] = ":eq(" + i + ")"
i++
};
return [ before.join(",") , after.join(",") ]
}
$slides.mouseenter(function(){
var groups, slideIndex, $that = $(this);
slideIndex = $that.index();
groups = theOthers(slideIndex, slidesTotal);
$slides.filter(groups[0]).dosomething();
$slides.filter(groups[1]).dosomethingelse()
})
est-il un moyen plus simple de le faire avec jQuery?
désolé, j'ai mal compris votre question. Supprimé ma réponse :-) –
pas de problème, c'était une combinaison intéressante de sélecors: P mais j'ai déjà utilisé '$ slides.not ($ (this))' etc ... et puis j'ai découvert que j'avais besoin d'animer les éléments avant et après seperatly .. – meo