Maison  >  Questions et réponses  >  le corps du texte

JavaScript et Jquery : Trouver l'index de l'élément cliqué

<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>
P粉022140576P粉022140576444 Il y a quelques jours532

répondre à tous(1)je répondrai

  • P粉426780515

    P粉4267805152023-08-26 09:37:08

    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é) :

    var index = thumbs.index($(this))

    répondre
    0
  • Annulerrépondre