使用jQuery

时间:2017-12-21 09:26:52

标签: javascript jquery html5 twitter-bootstrap

我在下面发布了一个标签列表代码。

                              //TabList
                              <ul id="tabs" class="nav nav-tabs" role="tablist">
                                <li role="presentation" class="active">
                                    <a id="t1"  href="#tab1" aria-controls="tab1" role="tab" data-toggle="tab"></a>
                                </li>
                                <li role="presentation">
                                    <a id="t2" href="#tab2" aria-controls="tab2" role="tab" data-toggle="tab"></a>
                                </li>
                                <li role="presentation">
                                    <a id="t3" href="#tab3" aria-controls="tab3" role="tab" data-toggle="tab"></a>
                                </li>
                                <li role="presentation">
                                    <a id="t4" href="#tab4" aria-controls="tab4" role="tab" data-toggle="tab"></a>
                                </li>

                            </ul>     

每个标签都有一张照片和一些信息。我想每隔5秒自动滚动每个标签,然后在到达结束时从第一个标签开始。

使用setInterval函数(在下面发布)我可以让它工作,但信息不会改变。那是因为它没有为超链接添加活动类。

//setInterval Function

     setInterval(function () {     
        //get currently-on tab
        var onTab = tabs.filter('.active');            
        //click either next tab, if exists, else first one
        var nextTab = onTab.index() < tabs.length - 1 ? onTab.next() : tabs.first();
        nextTab.click();
    }, 1000); 

  var tabs = $('#tabs li');

   //on click to tab, turn it on, and turn previously-on tab off
    tabs.click(function () {      
        $(this).addClass('active').siblings('.active').removeClass('active');                    

        }


    });         

要使用显示标签更改时间的信息,请使用此代码。

tabs.click(function () {   

            var curr = $('li.active');
            curr.removeClass('active');     
            curr.next().find("a").click();
            curr.next().addClass('active');

    });         

问题是,当它到达结束时它不会回到开始我已经查看了堆栈溢出的答案,如this,但无法使其工作。我觉得我无法看到森林里的树木,这是一个简单的答案。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

var nextTab = onTab.index() < tabs.length - 1 ? onTab.next() : tabs.first();

嗨哟:)这里当你得到最后一个元素时,你应该将'active'类添加到你的第一个元素列表:) Smth就像:

var nextTab = onTab.index() < tabs.length - 1 ? onTab.next() : tabs.first().addClass('active');