Saturnian Saturnian -5 years ago 128
jQuery Question

How to switch between tabs using href?

I've created a tabbed pane here - LINK

In Tab 1, I have a piece of text. When clicked, I'd like it to show the second tab. I've tried all variations of

, etc but nothing seems to work.

How do I navigate it to the second tab's content?

HTML Code:

<div id="mtabs">
<li><a href="#tab1" rel="tab1">Tab 1</a></li>
<li><a href="#tab2" rel="tab2">Tab 2</a></li>
<li><a href="#tab3" rel="tab3">Tab 3</a></li>
<li class="active"><a href="#tab4" rel="tab4">Tab 4</a></li>

<div id="mtabs_content_container">
<div id="tab1" class="mtab_content">
<p><a href="#mtabs_wrapper#mtabs_content_container#tab2">Take me to Tab 2</a></p>
<div id="tab2" class="mtab_content">
<p>Tab content 2</p>
<div id="tab3" class="mtab_content">
<p>Tab content 3</p>
<div id="tab4" class="mtab_content" style="display: block;">
<p>Tab content 4</p>

<!-- Original tabs END -->

CSS Code:

#mtabs_wrapper {
width: 422px;
#mtabs_container {
border-bottom: 1px solid #ccc;
#mtabs {
list-style: none;
padding: 5px 0 4px 0;
margin: 0 0 0 0px;
/* font: 0.75em arial; */
#mtabs li {
display: inline;
#mtabs li a {
border: 1px solid #ccc;
padding: 4px 6px;
text-decoration: none;
font-family: Artifika, serif;
background-color: #eeeeee;
/*border-bottom: 1px solid #ccc;
outline: none;*/
border-radius: 5px 5px 5px 5px;
-moz-border-radius: 5px 5px 5px 5px;
-webkit-border-top-left-radius: 5px;
-webkit-border-top-right-radius: 5px;
#mtabs li a:hover {
background-color: #dddddd;
padding: 4px 6px;
#mtabs a {
border-bottom: 1px solid #ccc;
background-color: #fff;
padding: 4px 6px 5px 6px;
/*border-bottom: none;*/
#mtabs a:hover {
background-color: #eeeeee;
padding: 4px 6px 5px 6px;
/*border-bottom: none;*/

#mtabs li a.icon_accept {
background-image: url(accept.png);
background-position: 5px;
background-repeat: no-repeat;
padding-left: 24px;
#mtabs li a.icon_accept:hover {
padding-left: 24px;

#mtabs_content_container {
border: 1px solid #ccc;
border-top: 1px solid #ccc;
padding: 10px;
width: 600px;
.mtab_content {
display: none;


Javascript (jQuery actually):

// When user clicks on tab, this code will be executed
$("#mtabs li").click(function() {
// First remove class "active" from currently active tab
$("#mtabs li").removeClass('active');

// Now add class "active" to the selected/clicked tab

// Hide all tab content

// Here we get the href value of the selected tab
var selected_tab = $(this).find("a").attr("href");

// Show the selected tab content

// At the end, we add return false so that the click on the link is not executed
return false;

Answer Source

if You do not want to use external libraries you can use this. Add an identifier to the link and add the click event and emulate a click on the preferred tab. is not practical to do this. but it is an option only if you don't want to use libraries

<a id="simulate">Take me to Tab 2</a>

look at this example.

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download