簡體   English   中英

如何使用上一個和下一個按鈕遍歷帶有嵌套下拉菜單的Bootstrap選項卡式導航菜單?

[英]How do I traverse a Bootstrap tabbed navigation menu with nested dropdown using prev and next button?

我有一個帶有嵌套下拉菜單的選項卡式導航的模板。 上一個和下一個按鈕應提供每個選項卡的輔助導航。 這些按鈕將一直起作用,直到需要瀏覽下拉菜單中的頁面為止。 如果使用“下一步”按鈕前進到講座,則下拉菜單中的所有頁面/講座都將顯示在按鈕下方。

我不確定在js中編寫if / else片段的最佳方法。 不知道根據我目前為止的情況還是從頭開始研究是否更好。 我需要幫助弄清楚如何使腳本在用於導航的整個列表中前進和后退。

     $('.btnNext').click(function () {
          $('.nav-tabs > .nav-item > .active').parent().next('li').find('a').trigger('click');
     });

     $('.btnPrevious').click(function () {
         $('.nav-tabs > .nav-item > .active').parent().prev('li').find('a').trigger('click');
     });
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/css/bootstrap.min.css" integrity="sha384-GJzZqFGwb1QTTN6wy59ffF1BuGJpLSa9DkKMp0DgiMDm4iYMj70gZWKYbI706tWS" crossorigin="anonymous">
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.7.0/css/all.css" integrity="sha384-lZN37f5QGtY3VHgisS14W3ExzMWZxybE1SJSEsQp9S+oqd12jhcu+A56Ebc1zFSJ" crossorigin="anonymous">

<script src="https://code.jquery.com/jquery-3.3.1.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.6/umd/popper.min.js" integrity="sha384-wHAiFfRlMFy6i5SRaxvfOCifBUQy1xHdJ/yoi7FRNXMRBu5WHdZYu1hA6ZOblgut" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/js/bootstrap.min.js" integrity="sha384-B0UglyR+jN6CkvvICOB2joaf5I4l3gm9GU6Hc1og6Ls7i6U/mkkaduKaBhlAXv9k" crossorigin="anonymous"></script>


<body>

<nav role="navigation"> 
     <ul class="nav nav-tabs" role="tablist">
          <li class="nav-item">
               <a class="nav-link active" id="tab1" data-toggle="tab" href="#page1" role="tab" >Welcome</a></li>
          <li class="nav-item">
               <a href="#page2" id="tab2" data-toggle="tab" role="tab"  class="nav-link">Activities</a></li>
          <li class="nav-item dropdown">
               <a class="nav-link dropdown-toggle" data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false">Lectures</a>
               <div class="dropdown-menu">
                     <a class="dropdown-item" data-toggle="tab" role="tab" id="tab3" href="#page3">Lecture 1</a>
                     <a class="dropdown-item" data-toggle="tab" role="tab" id="tab4" href="#page4">Lecture 2</a>
                     <a class="dropdown-item" data-toggle="tab" role="tab" id="tab5" href="#page5">Lecture 3</a>
              </div> 
          </li>

     </ul>
</nav>

<div class="tab-content" id="myTabContent">     
<div class="tab-pane fade show active" id="page1" role="tabpanel" aria-labelledby="overview-tab">
     <h2>Overview</h2>
     <p>Page 1.  </p>

    <div>
      <a type="button" class="btn btn-primary btnNext nextRight">Next <em class="fas fa-chevron-right"></em></a>
    </div>
</div>

<div class="tab-pane fade" id="page2" role="tabpanel" aria-labelledby="activities-tab">
     <h2>Activities</h2>
      Page 2. 
          <div class="alert alert-info fade in">
            <a href="#" class="close" data-dismiss="alert" aria-label="close">&times;</a>
            <p class="text-center">If you have questions regarding any of these activities, make sure to post those questions in the <strong>Open Forum</strong>.</p>
          </div>
    <div>
     <a type="button" class="btn btn-primary btnNext nextRight">Next <em class="fas fa-chevron-right"></em></a>
     <a type="button" class="btn btn-primary btnPrevious"> <em class="fas fa-chevron-left"></em> Previous</a>
    </div>     
</div>

<div class="tab-pane fade" id="page3" role="tabpanel" aria-labelledby="page3-tab">
     <h2>Lecture 1</h2>
     <p>Page 3.</p>

    <div>
     <a type="button" class="btn btn-primary btnNext nextRight">Next <em class="fas fa-chevron-right"></em></a>
     <a type="button" class="btn btn-primary btnPrevious"> <em class="fas fa-chevron-left"></em> Previous</a>
    </div>
</div>

<div class="tab-pane fade" id="page4" role="tabpanel" aria-labelledby="page4-tab">
     <h2>Lecture 2</h2>
     <p>Page 4. </p>
    <div>
     <a type="button" class="btn btn-primary btnNext nextRight">Next <em class="fas fa-chevron-right"></em></a>
     <a type="button" class="btn btn-primary btnPrevious"> <em class="fas fa-chevron-left"></em> Previous</a>
    </div>
</div>

<div class="tab-pane fade" id="page5" role="tabpanel" aria-labelledby="page5-tab">
     <h2>Lecture 3</h2>
     <p>Page 5. </p>
         <div>
     <a type="button" class="btn btn-primary btnPrevious"><em class="fas fa-chevron-left"></em> Previous</a>

    </div>
</div>

</div>

</body>

這是一個使用tab('show')代替trigger('click')的工作演示

 $('.btnNext').click(function() { if (!$('[data-toggle="tab"].active').next('[data-toggle="tab"]').first().tab('show').length) $('[data-toggle="tab"].active').parents('li').nextAll().find('[data-toggle="tab"]').first().tab('show') }); $('.btnPrevious').click(function() { if (!$('[data-toggle="tab"].active').prev('[data-toggle="tab"]').first().tab('show').length) $('[data-toggle="tab"].active').parents('li').prevAll().find('[data-toggle="tab"]').last().tab('show') }); 
 <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/css/bootstrap.min.css" integrity="sha384-GJzZqFGwb1QTTN6wy59ffF1BuGJpLSa9DkKMp0DgiMDm4iYMj70gZWKYbI706tWS" crossorigin="anonymous"> <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.7.0/css/all.css" integrity="sha384-lZN37f5QGtY3VHgisS14W3ExzMWZxybE1SJSEsQp9S+oqd12jhcu+A56Ebc1zFSJ" crossorigin="anonymous"> <script src="https://code.jquery.com/jquery-3.3.1.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.6/umd/popper.min.js" integrity="sha384-wHAiFfRlMFy6i5SRaxvfOCifBUQy1xHdJ/yoi7FRNXMRBu5WHdZYu1hA6ZOblgut" crossorigin="anonymous"></script> <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/js/bootstrap.min.js" integrity="sha384-B0UglyR+jN6CkvvICOB2joaf5I4l3gm9GU6Hc1og6Ls7i6U/mkkaduKaBhlAXv9k" crossorigin="anonymous"></script> <nav role="navigation"> <ul class="nav nav-tabs" role="tablist"> <li class="nav-item"> <a class="nav-link active" id="tab1" data-toggle="tab" href="#page1" role="tab">Welcome</a></li> <li class="nav-item"> <a href="#page2" id="tab2" data-toggle="tab" role="tab" class="nav-link">Activities</a></li> <li class="nav-item dropdown"> <a class="nav-link dropdown-toggle" data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false">Lectures</a> <div class="dropdown-menu"> <a class="dropdown-item" data-toggle="tab" role="tab" id="tab3" href="#page3">Lecture 1</a> <a class="dropdown-item" data-toggle="tab" role="tab" id="tab4" href="#page4">Lecture 2</a> <a class="dropdown-item" data-toggle="tab" role="tab" id="tab5" href="#page5">Lecture 3</a> </div> </li> </ul> </nav> <div class="tab-content" id="myTabContent"> <div class="tab-pane fade show active" id="page1" role="tabpanel" aria-labelledby="overview-tab"> <h2>Overview</h2> <p>Page 1. </p> <div> <a type="button" class="btn btn-primary btnNext nextRight">Next <em class="fas fa-chevron-right"></em></a> </div> </div> <div class="tab-pane fade" id="page2" role="tabpanel" aria-labelledby="activities-tab"> <h2>Activities</h2> Page 2. <div class="alert alert-info fade in"> <a href="#" class="close" data-dismiss="alert" aria-label="close">&times;</a> </div> <div> <a type="button" class="btn btn-primary btnNext nextRight">Next <em class="fas fa-chevron-right"></em></a> <a type="button" class="btn btn-primary btnPrevious"> <em class="fas fa-chevron-left"></em> Previous</a> </div> </div> <div class="tab-pane fade" id="page3" role="tabpanel" aria-labelledby="page3-tab"> <h2>Lecture 1</h2> <p>Page 3.</p> <div> <a type="button" class="btn btn-primary btnNext nextRight">Next <em class="fas fa-chevron-right"></em></a> <a type="button" class="btn btn-primary btnPrevious"> <em class="fas fa-chevron-left"></em> Previous</a> </div> </div> <div class="tab-pane fade" id="page4" role="tabpanel" aria-labelledby="page4-tab"> <h2>Lecture 2</h2> <p>Page 4. </p> <div> <a type="button" class="btn btn-primary btnNext nextRight">Next <em class="fas fa-chevron-right"></em></a> <a type="button" class="btn btn-primary btnPrevious"> <em class="fas fa-chevron-left"></em> Previous</a> </div> </div> <div class="tab-pane fade" id="page5" role="tabpanel" aria-labelledby="page5-tab"> <h2>Lecture 3</h2> <p>Page 5. </p> <div> <a type="button" class="btn btn-primary btnPrevious"><em class="fas fa-chevron-left"></em> Previous</a> </div> </div> </div> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM