Tab Switcher
This is a tab switcher written in jQuery. This eases the pain out of creating tabs in a webpage.
by Jennifer Perrin
HTML
<script src="https://code.jquery.com/jquery-1.12.0.min.js"></script>
<ul>
<li class="tab-switcher" data-tab-index="0" tabindex="0">
Tab 1
</li>
<li class="tab-switcher" data-tab-index="1" tabindex="0">
Tab 2
</li>
<li class="tab-switcher" data-tab-index="2" tabindex="0">
Tab 3
</li>
<li class="tab-switcher" data-tab-index="3" tabindex="0">
Tab 4
</li>
</ul>
<div id="allTabsContainer">
<div class="tab-container" data-tab-index="0">
Some content for Tab - 1
</div>
<div class="tab-container" data-tab-index="1" style="display:none;">
Some content for Tab - 2
</div>
<div class="tab-container" data-tab-index="2" style="display:none;">
Some content for Tab - 3
</div>
<div class="tab-container" data-tab-index="3" style="display:none;">
Some content for Tab - 4
</div>
</div>
CSS
ul {
list-style: none;
}
.tab-switcher {
display: inline-block;
cursor: pointer;
margin-right: 25px;
}
JavaScript
$(document).ready(function () {
var previousActiveTabIndex = 0;
$(".tab-switcher").on('click keypress', function (event) {
// event.which === 13 means the "Enter" key is pressed
if ((event.type === "keypress" && event.which === 13) || event.type === "click") {
var tabClicked = $(this).data("tab-index");
if(tabClicked != previousActiveTabIndex) {
$("#allTabsContainer .tab-container").each(function () {
if($(this).data("tab-index") == tabClicked) {
$(".tab-container").hide();
$(this).show();
previousActiveTabIndex = $(this).data("tab-index");
return;
}
});
}
}
});
});