ledgeJumper
ledgeJumper

Reputation: 3630

twitter bootstrap 3 setting active tab in js not working

Yeah, so this has been asked about 1000 times, but I tried the answers and none seem to be working for me.

Here are my tabs:

<ul class="nav nav-tabs">
    <li><a href="#profile" data-toggle="tab">Profile</a></li>
    <li><a href="#account" data-toggle="tab">Account</a></li>
    <li><a href="#security" data-toggle="tab">Security</a></li>
    <li><a href="#recruiting" data-toggle="tab">Recruiting</a></li>
</ul>

Note, none are set to active by default. The tab panes:

<div class="tab-content">
    <div class="tab-pane fade" id="account">
        Account
    </div>
    <div class="tab-pane fade" id="security">
        Security
    </div>
    ...more...
</div>

In my js, I am doing this per the bootstrap docs:

$(window).load(function () {
        $('#tab a:first').tab('show');
    });

Nothing shows. What I am trying to do is have it default open the first tab, but depending on some data I pass in I would like to call this if needed:

$('#tab a:[href="#security"]').tab('show');

Upvotes: 20

Views: 42106

Answers (2)

aze&#243;s
aze&#243;s

Reputation: 4901

The first problem is here:

$('#tab a:first').tab('show')

#tab makes reference to an id="tab", and you don't have one. Replace #tab with .nav-tabs or add an ID to your ul:

$('.nav-tabs a:first').tab('show')

Your second problem is that you forgot to remove the : next to the a:

$('.nav-tabs a:[href="#security"]').tab('show')

It should be:

$('.nav-tabs a[href="#security"]').tab('show')

Upvotes: 37

Satpal
Satpal

Reputation: 133403

You have : in your selector, Change it to

 $('#tab a[href="#security"]').tab('show');

instead of

 $('#tab a:[href="#security"]').tab('show'); 

Upvotes: 8

Related Questions