【发布时间】:2014-08-22 02:28:15
【问题描述】:
我有一个选项卡项目。这有点不同,因为它是垂直工作的。 FIDDLE
在功能上它工作正常。我面临的问题是,如果我单击 Tab 2 或 Tab 3 ,这些选项卡项将保留在顶部。这是快速图片:
您可以看到我选择了tab 3,并且“Tab3 item”显示在顶部。我想要的是“Tab item”应该与“tab”保持在同一级别所以这里的“tab3 item”应该与“tab3”一致。
我知道这可以通过 CSS 在每个选项卡项上提供顶部边距来实现。但问题是,可以有 100 个列表。对于他们每个人来说,给予保证金可能是一种痛苦。
所以我一直在寻找一个动态解决方案,以便“标签项”跟随相关的标签。这可能与 jQuery 吗?我在 jquery 方面不是很好,我正在寻求帮助。任何解决方案将不胜感激。
HTML
<div class="tab-content">
<ul id="tabs">
<li><a href="#tab1">tab1</a></li>
<li><a href="#tab2">tab2</a></li>
<li><a href="#tab3">tab3</a></li>
</ul>
</div>
<div id="content">
<div class="content-item" id="tab1">tab1 Item</div>
<div class="content-item" id="tab2">tab2 Item</div>
<div class="content-item" id="tab3">tab3 Item</div>
</div>
标签的 JS
$(document).ready(function() {
$("#content div").hide(); // Initially hide all content
$("#tabs li:first").attr("id","current"); // Activate first tab
$("#content div:first").fadeIn(); // Show first tab content
$('#tabs li a').click(function(e) {
e.preventDefault();
if ($(this).attr("id") == "current"){ //detection for current tab
return
}
else{
$("#content div").hide(); //Hide all content
$("#tabs li").attr("id",""); //Reset id's
$(this).parent().attr("id","current"); // Activate this
$( $(this).attr('href')).fadeIn(); // Show content for current tab
}
});
});
[抱歉英语不好:)]
【问题讨论】:
-
Caleb 是对的,更新的 JS Fiddle:jsfiddle.net/5ezT3/46
-
这是正确的,但问题是如果选项卡项目的内容数量不同,它将与级别不匹配!就像我在选项卡项目 1 中有很多东西并选择选项卡 2。标签项目 2 会下降很多。示例:jsfiddle.net/5ezT3/47
标签: javascript jquery css tabs