使用anchor的.hash
属性作为选择器来切换元素的div状态(显示,隐藏),如:
$('#navbar a').click(function(e) {
$('.container > div').hide();
$(this.hash).show();
e.preventDefault(); //to prevent scrolling
});
和<div>
元素:
<div class="container">
<div id="section1">Section 1</div>
<div id="section2">Section 2</div>
<div id="section3">Section 3</div>
<div id="section4">Section 4</div>
</div>
它可以工作,但不是在页面首次加载时,首次加载时,会显示所有div。
如何隐藏除第一个之外的所有div?
请查看jsfiddle
答案 0 :(得分:2)
答案 1 :(得分:1)
您需要从隐藏的第一个<div>
开始,然后更改哪个在点击时可见。
$('#navbar a').click(function(e) {
$('.container > div').hide();
$(this.hash).show();
e.preventDefault(); //to prevent scrolling
});
&#13;
.container > div {
display: none;
}
#section1 {
display: block;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="navbar">
<ul>
<li><a href="#section1">Link 1</a></li>
<li><a href="#section2">Link 2</a></li>
<li><a href="#section3">Link 3</a></li>
<li><a href="#section4">Link 4</a></li>
</ul>
</div>
<div class="container">
<div id="section1">Section 1</div>
<div id="section2">Section 2</div>
<div id="section3">Section 3</div>
<div id="section4">Section 4</div>
</div>
&#13;
答案 2 :(得分:0)
您希望将第一个a
元素或您想要默认的元素归零,并在其上触发click
事件。这应该这样做:
$('#navbar a').click(function(e) {
e.preventDefault();
$('.container > div').hide();
$(this.hash).show();
})
.first().trigger('click');
$('#navbar a').click(function(e) {
$('.container > div').hide();
$(this.hash).show();
e.preventDefault(); //to prevent scrolling
})
.first().trigger('click');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="navbar">
<ul>
<li><a href="#section1">Link 1</a></li>
<li><a href="#section2">Link 2</a></li>
<li><a href="#section3">Link 3</a></li>
<li><a href="#section4">Link 4</a></li>
</ul>
</div>
<div class="container">
<div id="section1">Section 1</div>
<div id="section2">Section 2</div>
<div id="section3">Section 3</div>
<div id="section4">Section 4</div>
</div>