切換語言為:簡體

使用 Bootstrap 的 nav-tabs 和 tab-content 元件時,頁面中的切換選單無法正常響應切換事件

  • 爱糖宝
  • 2024-11-12
  • 2032
  • 0
  • 0

在使用 Bootstrap 的 nav-tabs 和 tab-content 元件時,頁面中的切換選單無法正常響應切換事件,可能是因為以下幾點問題:

1. 缺少 Bootstrap 的 JavaScript 檔案:Bootstrap 的 tab 切換功能依賴 JavaScript,如果沒有引入 bootstrap.bundle.min.js,切換事件不會生效。(常識問題)

2. tab-content 內 tab-pane 的 id 使用方式:data-bs-target 和 tab-pane 的 id 中不需要 # 符號。data-bs-target 應該直接引用 id,而不是帶有 # 符號的字串。(粗心問題)

修改建議

    以下是對程式碼的調整:

    1. 確保引入 Bootstrap 的 JavaScript 檔案

    在 HTML 檔案中,確保在 <head> 或頁面底部引入 Bootstrap 的 JavaScript 檔案:

    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>

    2. 修復 data-bs-target 和 id 的使用方式

    修改 data-bs-target 和 tab-pane 的 id 中的 # 符號,改為直接使用 id 名稱。例如下面的例子中,如果把id寫為「#nav-home」就會出問題,一定要小心,下面是正確的舉例。

    <nav>   
    <div class="nav nav-tabs" id="nav-tab" role="tablist">     
        <button class="nav-link active" id="nav-home-tab" data-bs-toggle="tab" data-bs-target="#nav-home" type="button" role="tab" aria-controls="nav-home" aria-selected="true">
            Home
        </button>
   </div> 
</nav> 
<div class="tab-content" id="nav-tabContent">   
    <div class="tab-pane fade show active" id="nav-home" role="tabpanel" aria-labelledby="nav-home-tab" tabindex="0">...</div>
</div>

解釋

     • 移除 # 符號:將 data-bs-target 和 tab-pane 的 id 直接設定為字串拼接的結果,不帶 # 符號。

     • Bootstrap JavaScript 檔案:確保正確引入了 Bootstrap 的 JavaScript 依賴。

應用以上調整後,應該能正常響應切換事件。如果依然存在問題,可以檢查瀏覽器控制檯是否有報錯資訊

0則評論

您的電子郵件等資訊不會被公開,以下所有項目均必填

OK! You can skip this field.