【问题标题】:make the first tab the active tab when open a bootstrap modal打开引导模式时使第一个选项卡成为活动选项卡
【发布时间】:2020-02-16 07:33:08
【问题描述】:

我有一个按钮,当点击它时会显示一个引导模式 模态包含侧边栏选项卡。

我的问题是当我关闭模式并通过单击按钮再次打开它时,它将使用最后一个激活的选项卡打开 一旦我关闭模式并再次打开模式而不重新加载页面,我希望激活的选项卡成为第一个选项卡。

我的html

 // the button that will open the bootstrap modal  
            <div>
            <a href="#"  class="popupLink" data-toggle="modal" data-target="#yDetailsModal"> 
            </a>
            </div>

// bootstrap modal  


<div class="modal" id="MyDetailsModal" tabindex="-1" role="dialog" arialabelledby="myDetailsModal" aria-hidden="true" >

 <div class="modal-dialog modal-details" role="document">

  <div class="modal-content modal-details">

   <div class="modal-header">

 <button type="button" class="close close-button"  data-dismiss="modal" aria-label="Close" id="btnId"> </button>

  </div>


 <div class="modal-body">
  <div class=" tabs-left" id= "modal-tabs">
   <ul class="nav nav-tabs">

   <li class="active"> 
   <a href="#personal"  data-toggle="tab"></a></li>

  <li>
   <a  href="#promotion" data-toggle="tab"> </a> </li> 
    <li>
    <a  href="#vacation" data-toggle="tab"> </a> </li>


</ul>
 </div>



<div class="tab-content" id="tab-content">
 <div class="tab-pane active" id="personalInformation"> 
  <div>
   <ul>
     <li>

      <span> this is a personal information</span>
      </li>
</ul>
</div>
</div>






【问题讨论】:

  • bootstrap 使用的是哪个版本的?
  • 我的引导版本 v3.3.6

标签: javascript jquery html


【解决方案1】:

只需使用 Bootstrap 默认方法 modal 和 tab

$('#MyDetailsModal').on('show.bs.modal', function (event) { 
    $(this).find('.nav a:first').tab('show');
})
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>


<div>
    <a href="#" class="popupLink btn btn-info btn-lg" data-toggle="modal" data-target="#MyDetailsModal">MyDetailsModal
    </a>
</div>

<div class="modal" id="MyDetailsModal" tabindex="-1" role="dialog" arialabelledby="myDetailsModal" aria-hidden="true">
    <div class="modal-dialog modal-details" role="document">
        <div class="modal-content modal-details">
            <div class="modal-header">
                <button type="button" class="close close-button" data-dismiss="modal" aria-label="Close" id="btnId"> </button>
            </div>

            <div class="modal-body">
                <div class=" tabs-left" id="modal-tabs">
                    <ul class="nav nav-tabs">
                        <li class="active">
                            <a href="#personal" data-toggle="tab">personal</a>
                        </li>
                        <li>
                            <a href="#promotion" data-toggle="tab">promotion</a>
                        </li>
                        <li>
                            <a href="#vacation" data-toggle="tab">vacation</a>
                        </li>
                    </ul>
                </div>

                <div class="tab-content" id="tab-content">
                    <div class="tab-pane active" id="personal">
                        this is a personal information
                    </div>
                    <div class="tab-pane" id="promotion">
                        this is a promotion information
                    </div>
                    <div class="tab-pane" id="vacation">
                        this is a vacation information
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>

【讨论】:

    【解决方案2】:

    模型弹出前调用函数ActiveFirstTab()

    <!DOCTYPE html>
    <html>
    <head>
      <title>Bootstrap Example</title>
      <meta charset="utf-8">
      <meta name="viewport" content="width=device-width, initial-scale=1">
      <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">
      <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
      <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script>
    </head>
    <body>
    
      <div>
    
        <button type="button" onclick="ActiveFirstTab();" class="btn btn-info btn-lg" data-toggle="modal" data-target="#MyDetailsModal">Open Modal</button>
      </div>
    
    
    
      <div class="modal" id="MyDetailsModal" tabindex="-1" role="dialog" arialabelledby="myDetailsModal" aria-hidden="true" >
    
       <div class="modal-dialog modal-details" role="document">
    
        <div class="modal-content modal-details">
    
         <div class="modal-header">
    
           <button type="button" class="close close-button"  data-dismiss="modal" aria-label="Close" id="btnId"> </button>
    
         </div>
    
    
         <div class="modal-body">
          <div class=" tabs-left" id= "modal-tabs">
           <ul class="nav nav-tabs">
    
             <li class="active"> 
              <a href="#personal"  data-toggle="tab">One</a></li>
    
              <li>
               <a  href="#promotion" data-toggle="tab">Two </a> </li> 
               <li>
                <a  href="#vacation" data-toggle="tab">Three </a> </li>
    
    
              </ul>
              <div class="tab-content">
      <div id="personal" class="tab-pane fade in active">
        <h3>personal</h3>
        <p>Some content.</p>
      </div>
      <div id="promotion" class="tab-pane fade">
        <h3> promotion Menu 1</h3>
        <p>Some content in menu 1.</p>
      </div>
      <div id="vacation" class="tab-pane fade">
        <h3>vacation Menu 2</h3>
        <p>Some content in menu 2.</p>
      </div>
    </div>
            </body>
            <script type="text/javascript">
              function ActiveFirstTab() {
           
       
               $('a[href="#personal"]').tab('show');
               
             }
           </script>
    
         </script>
         </html>

    【讨论】:

    • 它正在工作,但是一旦标签打开,内容就不会被加载
    • 我担心这个 div 会导致问题,你怎么看?
      • 这是个人信息
    • @RenadMunhi 现在请检查,纠正错误。
    • @RenadMunhi 请立即查看。
    【解决方案3】:

    你能添加下面提到的 jQuery 希望这对你有帮助。

    $(".popupLink").click(function(){
        jQuery('.nav-tabs li').removeClass('active');
        jQuery('.nav-tabs li:first-child').addClass('active');
    });
    

    【讨论】:

    • 我担心这个 div 会导致问题,你怎么看?
      • 这是个人信息
    【解决方案4】:

    试一试。 (运行在sn-p中进行测试)

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <title>Bootstrap Modal Example</title>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
        <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script>
    </head>
    <body>
    <div>
        <button type="button" onclick="openModal();" class="btn btn-info btn-lg" data-toggle="modal" data-target="#myModal">Open Modal</button>
    </div>
    <div class="modal" id="myModal" tabindex="-1" role="dialog" arialabelledby="myModal" aria-hidden="true">
        <div class="modal-dialog modal-details" role="document">
            <div class="modal-content modal-details">
                <div class="modal-header">
                    <button type="button" class="close close-button" data-dismiss="modal" aria-label="Close" id="btnId"></button>
                </div>
                <div class="modal-body">
                    <div class=" tabs-left" id="modal-tabs">
                        <ul class="nav nav-tabs">
                            <li class="active"><a href="#one" data-toggle="tab">One</a></li>
                            <li><a href="#two" data-toggle="tab">Two</a></li>
                            <li><a href="#three" data-toggle="tab">Three</a></li>
                        </ul>
                        <div class="tab-content">
                            <div id="one" class="tab-pane fade in active">
                                <h3>Menu 1</h3>
                                <p>Some content in menu 1.</p>
                            </div>
                            <div id="two" class="tab-pane fade">
                                <h3>Menu 2</h3>
                                <p>Some content in menu 2.</p>
                            </div>
                            <div id="three" class="tab-pane fade">
                                <h3>Menu 2</h3>
                                <p>Some content in menu 3.</p>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
    </body>
    <script type="text/javascript">
        function openModal() {
            $("#myModal li").first().children()[0].click();
        }
    </script>
    </html>

    【讨论】:

      猜你喜欢
      相关资源
      最近更新 更多
      热门标签