下面的代码有问题。我的导航 tab -1和Tab-2中有两个选项卡,当用户单击任何选项卡时,我希望向其添加 active 类,同时从以前的活动选项卡中删除active类。此外,当前处于活动状态的选项卡应该显示其内容,并必须隐藏其余的内容。这意味着当用户单击任何选项卡时,它应该只显示其内容,而其他内容应该隐藏。请帮我谢谢。
<style>
.wrapper .tabs {
display: none;
}
.wrapper .tabs.active {
display: block;
}
</style><div class="wrapper">
<!-- Navigation -->
<ul class="nav">
<li class="active"><a href="#tab-1">Tab-1</a></li>
<li><a href="#tab-2">Tab-2</a></li>
</ul>
<!-- Panel-1 -->
<div id="tab-1" class="tabs active">
<p>Tab-1 Content</p>
</div>
<!-- Panel-2 -->
<div id="tab-2" class="tabs">
<p>Tab-2 Content</p>
</div>
</div>
<!-- Script -->
<script>
$(document).ready(function () {
$('.nav li').click(function() {
$('.nav li.active').removeClass('active');
$(this).addClass('active');
});
// To display content for active class only
$('.nav li').click(function() {
$('.wrapper .tabs.active').removeClass('active');
$(this).addClass('active');
});
});
</script>发布于 2016-08-20 02:21:46
您可以使用.eq(),.index()在click事件中附加到选择器"a[href^='#tab-']",选择以#tab-开头的元素,创建变量引用元素,其中id以tab-开头,在click函数中调用event.preventDefault(),以防止对文档片段的导航,.hide(),d11
$(document).ready(function() {
var a = $("a[href^='#tab-']");
var tabs = $("[id^=tab]");
a.click(function(e) {
e.preventDefault();
tabs.hide().eq(a.index(this)).show()
})
})#tab-1 {
display: block;
}
[id^="tab"]:not(#tab-1) {
display: none;
}<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.0.0/jquery.js">
</script>
<div class="wrapper">
<!-- Navigation -->
<ul class="nav">
<li>
<a href="#tab-1">Tab-1</a>
</li>
<li>
<a href="#tab-2">Tab-2</a>
</li>
</ul>
<!-- Panel-1 -->
<div id="tab-1" class="tabs active">
<p>Tab-1 Content</p>
</div>
<!-- Panel-2 -->
<div id="tab-2" class="tabs">
<p>Tab-2 Content</p>
</div>
</div>
https://stackoverflow.com/questions/39049688
复制相似问题