bootstrap中tab切換的使用


文檔地址:https://v3.bootcss.com/javascript/#tabs

 簡單實例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>tab切換</title>
    <link href="https://cdn.bootcss.com/twitter-bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
    <script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js"></script>
    <script src="https://cdn.bootcss.com/twitter-bootstrap/3.3.7/js/bootstrap.min.js"></script>
</head>
<body>
    <div>

        <!-- 導航 -->
        <ul class="nav nav-tabs" role="tablist">
          <li role="presentation" class="active"><a href="#home" aria-controls="home" role="tab" data-toggle="tab">Home</a></li>
          <li role="presentation"><a href="#profile" aria-controls="profile" role="tab" data-toggle="tab">Profile</a></li>
          <li role="presentation"><a href="#messages" aria-controls="messages" role="tab" data-toggle="tab">Messages</a></li>
          <li role="presentation"><a href="#settings" aria-controls="settings" role="tab" data-toggle="tab">Settings</a></li>
        </ul>
      
        <!-- 對應內容 -->
        <!-- <div class="tab-content">
          <div role="tabpanel" class="tab-pane active" id="home">...</div>
          <div role="tabpanel" class="tab-pane" id="profile">...</div>
          <div role="tabpanel" class="tab-pane" id="messages">...</div>
          <div role="tabpanel" class="tab-pane" id="settings">...</div>
        </div> -->

        <!-- 帶顯示效果的內容 -->
        <div class="tab-content">
            <div role="tabpanel" class="tab-pane fade in active" id="home">1</div>
            <div role="tabpanel" class="tab-pane fade" id="profile">2</div>
            <div role="tabpanel" class="tab-pane fade" id="messages">3</div>
            <div role="tabpanel" class="tab-pane fade" id="settings">4</div>
        </div>
    </div>
</body>
</html>

上方每個導航中的a標簽的href屬性值應該和內容的id想對應   (其它的照搬即可)

 

原理解析:

當顯示一個新標簽時,事件按如下順序觸發:

  1. hide.bs.tab (老選項卡隱藏之前)
  2. show.bs.tab (新選項卡顯示之前)
  3. hidden.bs.tab(老選項卡隱藏之后)
  4. shown.bs.tab(新選項卡顯示以后)

如果沒有標簽頁已經激活,那么隱藏。bs。taband hidden.bs。不會觸發tabevents。

事件類型 描述
show.bs.tab 此事件在顯示新選項卡之前觸發。使用event.targetandevent。relatedtargeto分別針對活動選項卡和前一個活動選項卡(如果可用)。
shown.bs.tab 此事件在選項卡顯示后觸發選項卡顯示。使用event.targetandevent。relatedtargeto分別針對活動選項卡和前一個活動選項卡(如果可用)。
hide.bs.tab 當要顯示新選項卡時(因此要隱藏先前的活動選項卡),此事件將觸發。Useevent。目標的事件。relatedtargeto分別針對當前活動選項卡和即將活動的新選項卡。
hidden.bs.tab 此事件在顯示新選項卡之后觸發(因此前一個活動選項卡被隱藏)。Useevent。目標的事件。relatedtargeto分別針對前一個活動選項卡和新活動選項卡。

使用實例:

$('a[data-toggle="tab"]').on('hide.bs.tab', function (e) {
        // e.target // 新選項卡對象
        // e.relatedTarget // 老選項卡對象
        console.log("老選項卡隱藏之前");
      })
      $('a[data-toggle="tab"]').on('show.bs.tab', function (e) {
        // e.target // 新選項卡對象
        // e.relatedTarget // 老選項卡對象
        console.log("新選項卡顯示之前");
      })
      $('a[data-toggle="tab"]').on('hidden.bs.tab', function (e) {
        // e.target // 新選項卡對象
        // e.relatedTarget // 老選項卡對象
        console.log("老選項卡隱藏之后");
      })
      $('a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
        console.log(e.target.nodeName);//獲取事件觸發元素標簽名(li,p,div,img,button…)
        console.log(e.target.id);//獲取事件觸發元素id
        console.log(e.target.className);//獲取事件觸發元素classname
        console.log(e.target.innerHTML);//獲取事件觸發元素的內容(li)
        console.log(e.relatedTarget) // 老選項卡對象
        console.log("新選項卡顯示之后");
      })
    </script>

初始化時是不會執行上面的事件的

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM