我到处搜寻堆叠溢出,似乎找不到我要找的东西。我想做一个简单的jQuery选项卡部分。控制多个内容区域的许多选项卡(而不是切换的标准1区域)。
我使用的是数据属性,我尝试使用多个企业,所以我没有重复id,但没有效果。
下面是选项卡的jQuery
$('ul.tabs li').click(function(){
var tab_id = $(this).attr('data-tab');
$('ul.tabs li').removeClass('current');
$('.tab-content').removeClass('current');
$(this).addClass('current');
$("#"+tab_id).addClass('current');
})
var tab = $("li").data("tab").split(" ");以及HTML:
<ul class="tabs">
<li class="tab-link current" data-tab="tab-1 tab-5">Tab One</li>
<li class="tab-link" data-tab="tab-2 tab-6">Tab Two</li>
<li class="tab-link" data-tab="tab-3 tab-7">Tab Three</li>
<li class="tab-link" data-tab="tab-4 tab-8">Tab Four</li>
</ul>
<div id="tab-1" class="tab-content current">
First content area
</div>
<div id="tab-2" class="tab-content">
Second content area
</div>
<div id="tab-3" class="tab-content">
Third content area
</div>
<div id="tab-4" class="tab-content">
Forth content area
</div>
<div id="tab-5" class="tab-content current">
First content area
</div>
<div id="tab-6" class="tab-content">
Second content area
</div>
<div id="tab-7" class="tab-content">
Third content area
</div>
<div id="tab-8" class="tab-content">
Forth content area
</div>
所以初始加载是很好的,但是当你点击任何选项卡时,第二个内容区域就消失了,而不是像第一个内容区域那样切换。
ANy创意?
下面是一个工作的jsFiddle:https://jsfiddle.net/alexgomy/9tqra6ze/11/
发布于 2018-10-18 06:17:43
这里有一个没有id(https://jsfiddle.net/L24qrbpj)的解决方案:
$(document).ready(function(){
$('ul.tabs li').click(function(){
var tab_id = $(this).attr('data-tab');
$('ul.tabs li').removeClass('current');
$('.tab-content').removeClass('current');
$(this).addClass('current');
$("."+tab_id).addClass('current');
})
})body {
margin-top: 100px;
line-height: 1.6;
}
.container {
width: 800px;
margin: 0 auto;
}
ul.tabs {
margin: 0 0 20px;
padding: 0px;
list-style: none;
}
ul.tabs li {
background: none;
color: #222;
display: inline-block;
padding: 10px 15px;
cursor: pointer;
}
ul.tabs li.current {
background: #ededed;
color: #222;
}
.tab-content {
display: none;
background: #ededed;
padding: 15px;
margin:0 0 30px;
}
.tab-content.current {
display: inherit;
}<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container">
<ul class="tabs">
<li class="tab-link current" data-tab="tab-1">Tab One</li>
<li class="tab-link" data-tab="tab-2">Tab Two</li>
<li class="tab-link" data-tab="tab-3">Tab Three</li>
<li class="tab-link" data-tab="tab-4">Tab Four</li>
</ul>
<div class="tab-1 tab-content current">
First content area
</div>
<div class="tab-2 tab-content">
Second content area
</div>
<div class="tab-3 tab-content">
Third content area
</div>
<div class="tab-4 tab-content">
Forth content area
</div>
<div class="tab-1 tab-content current">
First content area AVB
</div>
<div class="tab-2 tab-content">
Second content area AVB
</div>
<div class="tab-3 tab-content">
Third content area AVB
</div>
<div class="tab-4 tab-content">
Forth content area AVB
</div>
</div><!-- container -->
发布于 2018-10-18 06:15:05
在你的代码中,
$('ul.tabs li').removeClass('current');
$('.tab-content').removeClass('current');单击任何选项卡时,将隐藏显示的内容。
您可以使用toogleClass来控制要显示的内容。
这是一个工作样本
发布于 2018-10-18 06:26:22
$(document).ready(function(){
$('ul.tabs li').click(function(){
var tab_id = $(this).attr('data-tab');
$('ul.tabs li').removeClass('current');
$('.tab-content').removeClass('current');
$(this).addClass('current');
var tab = $(this).data("tab").split(" ");
for(var i=0; i < tab.length; i++)
{
$("#"+tab[i]).addClass('current');
}
})
})body{
margin-top: 100px;
line-height: 1.6
}
.container{
width: 800px;
margin: 0 auto;
}
ul.tabs{
margin: 0 0 20px;
padding: 0px;
list-style: none;
}
ul.tabs li{
background: none;
color: #222;
display: inline-block;
padding: 10px 15px;
cursor: pointer;
}
ul.tabs li.current{
background: #ededed;
color: #222;
}
.tab-content{
display: none;
background: #ededed;
padding: 15px;
margin:0 0 30px;
}
.tab-content.current{
display: inherit;
}<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul class="tabs">
<li class="tab-link current" data-tab="tab-1 tab-5">Tab One</li>
<li class="tab-link" data-tab="tab-2 tab-6">Tab Two</li>
<li class="tab-link" data-tab="tab-3 tab-7">Tab Three</li>
<li class="tab-link" data-tab="tab-4 tab-8">Tab Four</li>
</ul>
<div id="tab-1" class="tab-content current">
First content area
</div>
<div id="tab-2" class="tab-content">
Second content area
</div>
<div id="tab-3" class="tab-content">
Third content area
</div>
<div id="tab-4" class="tab-content">
Forth content area
</div>
<div id="tab-5" class="tab-content current">
First content area
</div>
<div id="tab-6" class="tab-content">
Second content area
</div>
<div id="tab-7" class="tab-content">
Third content area
</div>
<div id="tab-8" class="tab-content">
Forth content area
</div>
我希望你需要这样
https://stackoverflow.com/questions/52867922
复制相似问题