JavaScript,Jquery查找被点击元素的索引

时间:2012-05-31 08:34:32

标签: javascript jquery

我构建幻灯片,我需要堆叠以下问题 - 如何在单击标记时在数组中找到位置(索引)?这部分代码正在获取所有标签

 this.thumbs = this.nav.find('a');

怎么去那里? 而且,还有另一个问题 - 我需要在标签内切换div的类(当标签被点击时,div标签需要获得类promo_tumb_current,而具有该标签的那个需要松开它)。

HTML code:

<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>

JS代码:

<script>
                function 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 = function (coords){
                    this.container.stop().animate({
                        'margin-left' : coords || -(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;

                    return pos;
                }

                var slider = new Slider($('div.promo_inner ul'), $('div.promo_tumbs'));
                    slider.nav.find('div').on('click', function(){                               
                    if ($(this).attr("data-dir") === undefined ) {
                        var index = slider.thumbs.index();

                        console.log(index)
                    } else {
                         slider.set_current($(this).data('dir'));                    
                    }               
                    slider.transition();


                })

1 个答案:

答案 0 :(得分:2)

我认为你需要的是

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

例如,在您的事件处理程序中(这是单击的标记):

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