Search code examples
csstwitter-bootstrapbootstrap-4tabsnav

Bootstrap tabs not changing


I have the following code:

<ul class="nav nav-tabs" id="myTab" role="tablist">
    <li class="nav-item">
        <a class="nav-link active" href="#tab-test-01" role="tab">Test 01</a>
    </li>

    <li class="nav-item">
        <a class="nav-link" href="#tab-test-02" role="tab">Test 02</a>
    </li>
</ul>


<div class="tab-content" id="myTabContent">

    <div class="tab-pane fade show active" id="tab-test-01" role="tabpanel">
        <h1>Test 01</h1>
    </div>

    <div class="tab-pane fade" id="tab-test-02" role="tabpanel">
        <h1>Test 02</h1>
    </div>

</div>

But find that the 'Test 01' link is permanently active, even when I click 'Test 02'


Solution

  • you forgo to put data-toggle="tab"

    See snippet fyr.

    <link href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" rel="stylesheet"/>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js"></script>
    
    <ul class="nav nav-tabs" id="myTab" role="tablist">
        <li class="nav-item">
            <a class="nav-link active" data-toggle="tab" href="#tab-test-01">Test 01</a>
        </li>
    
        <li class="nav-item">
            <a class="nav-link"  data-toggle="tab" href="#tab-test-02">Test 02</a>
        </li>
    </ul>
    
    
    <div class="tab-content" id="myTabContent">
    
        <div class="tab-pane fade show active" id="tab-test-01">
            <h1>Test 01</h1>
        </div>
    
        <div class="tab-pane fade" id="tab-test-02">
            <h1>Test 02</h1>
        </div>
    
    </div>