Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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');
like image 803
ledgeJumper Avatar asked Jan 28 '14 22:01

ledgeJumper


People also ask

How do I change the active tab in Bootstrap?

To make the tabs toggleable, add the data-toggle="tab" attribute to each link. Then add a . tab-pane class with a unique ID for every tab and wrap them inside a <div> element with class . tab-content .

What is nav item in Bootstrap?

Navigation available in Bootstrap share general markup and styles, from the base . nav class to the active and disabled states. Swap modifier classes to switch between each style. The base . nav component is built with flexbox and provide a strong foundation for building all types of navigation components.


2 Answers

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')
like image 51
azeós Avatar answered Oct 18 '22 19:10

azeós


You have : in your selector, Change it to

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

instead of

 $('#tab a:[href="#security"]').tab('show'); 
like image 20
Satpal Avatar answered Oct 18 '22 20:10

Satpal