Heim  >  Fragen und Antworten  >  Hauptteil

JavaScript und Jquery: Finden Sie den Index des angeklickten Elements

<p>Ich erstelle eine Diashow und habe Schwierigkeiten mit der folgenden Frage: Wie finde ich die Position (den Index) in einem Array, wenn auf eine Beschriftung geklickt wird? Der folgende Codeabschnitt ruft alle a-Tags ab </p> <pre class="brush:php;toolbar:false;">this.thumbs = this.nav.find('a');</pre> <p>Wo soll ich anfangen? Ein weiteres Problem: Wenn auf das Label geklickt wird, muss ich die Klasse des Div innerhalb des Labels ändern (das Div-Label muss die Klasse promo_tumb_current erhalten und das Div mit diesem Label muss sie verlieren). </p> <p>HTML-Code: </p> <pre class="brush:php;toolbar:false;"><div class="promo_tumbs col_12"> <div data-dir="prev" class="prev"></div> <div data-dir="next" class="next"></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="#fifth"><div class="promo_tumb"></div></a> <a href="#fifth"><div class="promo_tumb"></div></a> <a href="#fifth"><div class="promo_tumb"></div></a> </div> </div></pre> <p>JS代码:</p> <pre class="brush:php;toolbar:false;"><script> Funktion Slider(container, nav){ this.container = Container; 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'); this.current = 0; } Slider.prototype.transition = Funktion (Koordinaten){ this.container.stop().animate({ 'margin-left' : Koordinaten || -(this.current * this.li_width) }) } Slider.prototype.set_current = function(dir){ var pos = this.current; if (dir === 'next') {pos++} else if (dir === 'prev') {pos--} this.current = (pos < 0)? this.li_len - 1 : pos % this.li_len; Rückgabeposition; } var slider = new Slider($('div.promo_inner ul'), $('div.promo_tumbs')); slider.nav.find('div').on('click', function(){ if ($(this).attr("data-dir") === undefiniert ) { var index = slider.thumbs.index(); console.log(index) } anders { slider.set_current($(this).data('dir')); } slider.transition(); })</pre> <p></p>
P粉022140576P粉022140576421 Tage vor500

Antworte allen(1)Ich werde antworten

  • P粉426780515

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

    我认为你需要的是

    http://api.jquery.com/index/

    例如,在你的事件处理程序中(其中this是被点击的a标签):

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

    Antwort
    0
  • StornierenAntwort