尝试实现'next'按钮使用twitter bootstrap-tabs.js

trying to implement a 'next' button using twitter bootstrap-tabs.js

本文关键字:twitter js bootstrap-tabs next 实现 按钮      更新时间:2023-09-26

我使用Twitter的bootstrap,并使用bootstrap-tabs.js实现了一些帮助屏幕的基本选项卡。令我惊讶的是,我找不到任何关于如何创建"下一步"按钮的文档。我想创建一个单独的"下一步"按钮循环通过所有选项卡(e。$('#next_tour'),下面)。有关于如何实现这个javascript的想法吗?

aside/comment:我还注意到片段标识符没有添加到url与引导解决方案-这可能是很好的,太。(对于这个功能,它让我考虑这个:http://flowplayer.org/tools/demos/tabs/ajax-history.html代替,但我现在还没有决定。)

<div class="span11 columns">
    <div class="row">
          <div id="my-tab-content" class="tab-content">
            <div class="active tab-pane" id="home">
              <p>Raw denim</p>
            </div>
            <div class="tab-pane" id="sensors">
              <p>Food truck.</p>
            </div>
            <div class="tab-pane" id="encouragment">
              <p>Banksy.</p>
            </div>
            <div class="tab-pane" id="teammates">
              <p>biodiesel.</p>
            </div>
            <div class="tab-pane" id="privacy">
              <p>mollit.</p>
            </div>
          </div>
</div>
</div>      
<div class="span1 columns offset11">
    <div class="row">
        <a id="next_tour" class="button_blue" href="">Next</a>
    </div>
</div>

这是我想到的,你可以改变只有两个选择器(a[data-toggle="tab"], ._tabs_navigation)来指定哪个按钮切换哪个选项卡,如果你有多个设置:

$(document).ready(function() {
    var tabIndex;
    var tabs = $('a[data-toggle="tab"]');
    tabs.on('shown', function(e) {
        tabIndex = $(e.target).closest('li').index();
    }).eq(0).trigger('shown');
    $('._tabs_navigation').on('click', 'a', function() {
        var index = tabIndex + ($(this).index() ? 1 : -1);
        if (index >= 0 && index < tabs.length) {
            tabs.eq(index).tab('show');
        }
        return false;
    });
})​

按钮标记,只有_tabs_navigation类是重要的:

<div class="btn-toolbar clearfix">
    <div class="btn-group pull-left _tabs_navigation" data-toggle="buttons-radio">
        <a class="btn btn-small btn-info" href="#">
            <i class="icon-arrow-left icon-white"></i>
        </a>
        <a class="btn btn-small btn-info" href="#">
            <i class="icon-arrow-right icon-white"></i>
        </a>
    </div>
</div>

工作的例子:http://jsfiddle.net/gEn8f/2/

我的Bootstrap 3.0版本(仅Next):

<ul class="nav nav-tabs" id="myTab">
    <li class="active"><a href="#base" data-toggle="tab">Base tab</a></li>
    <li><a href="#step2" data-toggle="tab">tab2</a></li>
    <li><a href="#step3" data-toggle="tab">tab3</a></li>
</ul>
<div class="tab-content">
    <div class="tab-pane fade in active" id="base">
        <p>This is content of Tab 1</p>
        <a href="#step2" onclick="javascript:tabNext(this);">Next &rarr;</a>
    </div>
    <div class="tab-pane fade" id="tab2">
        <p>This is content of Tab 2</p>
        <a href="#step3" onclick="javascript:tabNext(this);">Next &rarr;</a>
    </div>
    <div class="tab-pane fade" id="tab3">
        <p>This is content of Tab 3</p>
    </div>
</div>
<script>
$(document).ready(function() {
    $('#myTab a').click(function (e) {
      e.preventDefault();
      $(this).tab('show');
    })
    tabNext = function(e) {
      var nextTab = $(e).attr('href');
      $('#myTab a[href="' + nextTab + '"]').tab('show');
    }
})
</script>

答案就在这里http://twitter.github.com/bootstrap/javascript.html#tabs但是试试下面的代码

<ul id="myTab" class="nav nav-tabs">
    <li class="active"><a href="#tab1" data-toggle="tab">Tab 1</a></li>
    <li><a href="#tab2" data-toggle="tab">Tab 2</a></li>
    <li><a href="#tab3" data-toggle="tab">Tab 3</a></li>
    <li><a href="#tab4" data-toggle="tab">Tab 4</a></li>
</ul>
<div id="myTabContent" class="tab-content">
    <div class="tab-pane fade in active" id="tab1">
        <p>This is content of Tab 1</p>
    </div>
    <div class="tab-pane fade" id="tab2">
        <p>This is content of Tab 2</p>
    </div>
    <div class="tab-pane fade" id="tab3">
        <p>This is content of Tab 3</p>
    </div>
    <div class="tab-pane fade" id="tab4">
        <p>This is content of Tab 4</p>
    </div>
</div>
<div>
    <a href="javascript:tabPrev();" class="btn">&lsaquo; Prev</a>
    <a href="javascript:tabNext();" class="btn">Next &rsaquo;</a>
</div>
<script>
var myTab, myTabsActive, tabNext, tabPrev;
$(function() {
    myTabs = $('#myTab li').length;
    myTabsActive = 0; //or yours active tab
    tabNext = function() {
        var index = myTabsActive + 1;
        index = index >= myTabs ? 0 : index;
        $('#myTab li:eq(' + index + ') a').tab('show');
        myTabsActive = index;
    }
    tabPrev = function() {
        var index = myTabsActive - 1;
        index = index < 0 ? myTabs - 1 : index;
        $('#myTab li:eq(' + index + ') a').tab('show');
        myTabsActive = index;
    }
});
</script>