【问题标题】:Next and Previous buttons step through Bootstrap Tabs下一个和上一个按钮逐步通过引导选项卡
【发布时间】:2018-10-12 15:21:56
【问题描述】:

我正在尝试使用一些“上一个”和“下一个”按钮来逐步浏览一些 Bootstrap 选项卡窗格。

我读过一些看起来很接近的文章,但不是完全我正在寻找的。​​p>

其他示例似乎正在寻找 active 导航选项卡,但下一个和上一个按钮位于单独的选项卡容器中,我试图让它们独立于它们在导航容器中,因此该方法真的不行。

到目前为止,我一直在使用.next()activeshow 类添加到选项卡窗格,但似乎将它们添加到所有选项卡窗格,而不仅仅是单独一个。所以,如果我走在正确的道路上,或者如果有更简单的方法来实现这一点,我不是 100%?似乎有,我可能只是让自己很难。

无论如何,这就是我目前所拥有的......

Codepen 链接: https://codepen.io/ultraloveninja/pen/OBjmzy/

HTML:

<div class="container">

    <!-- Nav tabs -->
    <ul id="mytabs" class="nav nav-tabs" role="tablist">
      <li class="active">
          <a href="#first" role="tab" data-toggle="tab">
              <icon class="fa fa-home"></icon> First tab
          </a>
      </li>
      <li><a href="#second" role="tab" data-toggle="tab">
          <i class="fa fa-user"></i> Second tab
          </a>
      </li>
      <li>
          <a href="#third" role="tab" data-toggle="tab">
              <i class="fa fa-envelope"></i> Third tab
          </a>
      </li>
    </ul>

    <!-- Tab panes -->
    <div class="tab-content">
      <div class="tab-pane fade active in" id="first">
        <h2>First tab</h2>
      </div>
      <div class="tab-pane fade" id="second">
          <h2>Second tab</h2>
      </div>
      <div class="tab-pane fade" id="third">
          <h2>Third tab</h2>
      </div>
    </div>

  <a class="btn prev" href="#">Previous</a>
  <a class="btn next" href="#">Next</a>

</div>

JS:

$(function(){
  $('#mytabs a:first').tab('show');

  $('.next').on("click",function(e){
    var $this = $(this);
    if($(".tab-pane").hasClass("active")) {
      $('.tab-pane').next().addClass('show active');
      $this.prev().removeClass('show active');
      e.preventDefault();
    }
  });  
});

我认为,如果我可以通过部分弄清楚下一步,那么我可以修改前一个以遵循。

【问题讨论】:

    标签: javascript jquery html twitter-bootstrap-3 bootstrap-tabs


    【解决方案1】:

    好的,在分解并四处询问后,我发现了这个:

        $(".next").on("click", function(e) {
        const $active = $(".tab-pane.active");
        const $next = $active.next();
    
        if ($next.length) {
          $active.removeClass("active show");
          $next.addClass("active show");
        }
        e.preventDefault();
      });
    
      $(".prev").on("click", function(e) {
        const $active = $(".tab-pane.active");
        const $prev = $active.prev();
    
        if ($prev.length) {
          $active.removeClass("active show");
          $prev.addClass("active show");
        }
        e.preventDefault();
      });
    

    最重要的是,您需要确保您的上一个和下一个按钮在包含标签窗格的 div 之外。否则它将继续沿着链条向下。

    这是我整理的一支非常未精制的笔,以帮助说明我正在努力实现的目标:

    https://codepen.io/ultraloveninja/pen/OBjmzy

    【讨论】:

      猜你喜欢
      • 2016-05-17
      • 2014-04-13
      • 1970-01-01
      • 2019-04-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多