【问题标题】:change bootstrap active tab without having nav在没有导航的情况下更改引导活动选项卡
【发布时间】:2016-09-19 17:07:58
【问题描述】:

我有一个模态,在我的模态中有 3 个选项卡,但用户看不到任何导航选项卡来更改选项卡,模态正文中有一些按钮可以在特定选项卡之间切换。 我希望每次看到特定选项卡(始终是第一个选项卡)时打开此模式。现在发生的事情是我看到了最后一个关闭的标签。

这是我的代码示例

        <button class="btn btn-default" data-toggle="modal" data-target="#theModalID"">open modal</button>

        <div class="modal fade" id="theModalID" role="dialog">
        <div class="tab-content">
        <div id="tab1" class="tab-pane fade in active">
            <!-- tab 1 -->
        </div>
        <div id="tab2" class="tab-pane fade">
            <!-- tab 2 -->
            <button type="button" class="btn btn-default" data-toggle="tab" href="#tab3">tab3</button>
        </div>
        <div id="tab3" class="tab-pane fade">
            <!-- tab 3 -->
            <button type="button" class="btn btn-default" data-toggle="tab" href="#tab1">tab1</button>
        </div>
    </div>
    </div>

我每次都希望在模态显示上看到标签 1 作为活动标签。 我再次提到没有导航选项卡可以在选项卡之间切换。 tnx

【问题讨论】:

  • 请为显示模态的元素添加html。
  • 您需要更具体地解决您的问题,并发布更多相关的 HTML 代码。现在我能猜到的是你还没有为标签内容添加类active
  • @hsbr13 我已经回答了,请在下面查看我的回答并问我是否还有任何问题。

标签: jquery html twitter-bootstrap bootstrap-modal


【解决方案1】:

您可以在打开选项卡时触发按钮,这些按钮将在模式打开时显示第一个选项卡按钮。 show.bs.modal 事件是在模式打开之前触发的引导程序事件。 演示如下:

  $("#myModal").on("show.bs.modal", function () {
              $('#tab2-btn').trigger("click");
            });
<meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
  <script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>

 <button type="button" class="btn btn-info btn-lg" data-toggle="modal" data-target="#myModal">Open Modal</button>

  <!-- Modal -->
  <div class="modal fade" id="myModal" role="dialog">
    <div class="modal-dialog">
    
      <!-- Modal content-->
      <div class="modal-content">
        <div class="modal-header">
          <button type="button" class="close" data-dismiss="modal">&times;</button>
          <h4 class="modal-title">Modal Header</h4>
        </div>
        <div class="modal-body">
             <div class="tab-content">
                        <div id="tab1" class="tab-pane fade in active">
                            <!-- tab 1 -->
                            tab 1 text
                            <button type="button" class="btn btn-default" data-toggle="tab" href="#tab2">tab2</button>
                        </div>
                        <div id="tab2" class="tab-pane fade">
                            <!-- tab 2 -->
                            tab 2 text
                            <button id="tab2-btn"  type="button" class="btn btn-default" data-toggle="tab" href="#tab3">tab3</button>
                        </div>
                        <div id="tab3" class="tab-pane fade">
                            <!-- tab 3 -->
                            tab 3 text
                            <button id="tab1-btn" type="button" class="btn btn-default" data-toggle="tab" href="#tab1">tab1</button>
                        </div>
                    </div>
        </div>
       
      </div>
      
    </div>
  </div>
  

【讨论】:

  • 很高兴并记得当您使用选项卡、模式、工具提示等时,bootstrap 会包含所有这些事件。像我使用showed.bs.modal 事件一样应用它们。
  • 好吧 tnx 再次...请你看看这个好吗? stackoverflow.com/questions/39616276/…
【解决方案2】:

您可以为您的模态触发器添加功能 onclick 以每次显示第一个选项卡

由于您没有提供模态触发元素的 html 代码,所以我假设任何元素

showTabOne = function(){
	$('button[href="#tab1"]').tab('show');
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/>
<div>
        <button type="button" data-toggle="modal" data-target="#myModal" class="btn btn-info btn-lg" onclick="showTabOne()">Open Modal</button>
    </div>
    
    <div class="modal fade" id="myModal" role="dialog" style="display:none">
        <div class="modal-content">
            <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal">&times;</button>
                <h4 class="modal-title">Modal Header</h4>
            </div>
            <div class="modal-body">
                <div class="tab-content">
                    <div id="tab1" class="tab-pane fade in active">
                        <!-- tab 1 -->
                        tab 1 text
                        <button type="button" class="btn btn-default" data-toggle="tab" href="#tab2">tab2</button>
                    </div>                                                                  
                    <div id="tab2" class="tab-pane fade">
                        <!-- tab 2 -->
                        tab 2 text
                        <button type="button" class="btn btn-default" data-toggle="tab" href="#tab3">tab3</button>
                    </div>
                    <div id="tab3" class="tab-pane fade">
                        <!-- tab 3 -->
                        tab 3 text
                        <button id="tab1-btn" type="button" class="btn btn-default" data-toggle="tab" href="#tab1">tab1</button>
                    </div>
                </div>
            </div>
        </div>
     </div>

或者另一个选项是触发点击打开tab1的按钮 所以在这种情况下 js 将是

showTabOne = function(){
        $('#tab1-btn').click();
}

jsfiddle Demo 用于两个选项(第二个已评论)

【讨论】:

    猜你喜欢
    • 2016-10-22
    • 1970-01-01
    • 2021-05-20
    • 1970-01-01
    • 2016-08-07
    • 1970-01-01
    • 2015-11-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多