JavaScript et Jquery : Trouver l'index de l'élément cliqué
P粉022140576
2023-08-25 14:55:21
<p>Je suis en train de créer un diaporama et j'ai des difficultés avec la question suivante : Comment puis-je trouver la position (index) dans un tableau lorsqu'on clique sur une étiquette ? La section de code suivante obtient toutes les balises a </p>
<pre class="brush:php;toolbar:false;">this.thumbs = this.nav.find('a');</pre>
<p>Par où commencer ?
Un autre problème - lorsque l'on clique sur l'étiquette, je dois changer la classe du div à l'intérieur de l'étiquette (l'étiquette div doit obtenir la classe promo_tumb_current, et le div avec cette étiquette doit la perdre). </p>
<p>Code HTML : </p>
<pre class="brush:php;toolbar:false;"><div class="promo_tumbs col_12">
<div data-dir="prev" class="prev"></div>
<div data-dir="suivant" class="suivant"></div>
<div class="promo_tumbs_centar">
<a href="#first"><div class="promo_tumb promo_tumb_current"></div></a>
<a href="#second"><div class="promo_tumb"></div></a>
<a href="#thrid"><div class="promo_tumb"></div></a>
<a href="#fourh"><div class="promo_tumb"></div></a>
<a href="#cinquième"><div class="promo_tumb"></div></a>
<a href="#cinquième"><div class="promo_tumb"></div></a>
<a href="#cinquième"><div class="promo_tumb"></div></a>
</div>
</div></pré>
<p>JS代码:</p>
<pre class="brush:php;toolbar:false;"><script>
function Slider (conteneur, navigation) {
this.container = conteneur ;
this.nav = nav;
this.li = this.container.find('li');
this.li_width = this.li.first().width();
this.li_len = this.li.length;
this.thumbs = this.nav.find('a');
ceci.courant = 0 ;
}
Slider.prototype.transition = fonction (coordonnées){
this.container.stop().animate({
'marge gauche' : coordonnées || -(this.current * this.li_width)
})
}
Slider.prototype.set_current = fonction(rép){
var pos = this.current;
if (dir === 'suivant') {pos++}
sinon if (dir === 'prev') {pos--}
this.current = (pos < 0) ? this.li_len - 1 : pos % this.li_len;
retour pos;
}
var slider = new Slider($('div.promo_inner ul'), $('div.promo_tumbs'));
slider.nav.find('div').on('clic', function(){
if ($(this).attr("data-dir") === non défini ) {
var index = slider.thumbs.index();
console.log(index)
} autre {
slider.set_current($(this).data('dir'));
}
slider.transition();
})</pré>
<p></p>
Je pense que ce dont tu as besoin c'est de
http://api.jquery.com/index/
Par exemple, dans votre gestionnaire d'événements (où il s'agit du tag cliqué) :