早上好, 我有一个显示/隐藏导航菜单,当点击第一个项目时,将生成第二个导航菜单,该菜单从第一个选项中分割出来。问题是,当我单击下一组导航项时,链接到辅助导航的项目会消失,但会显示该项目。我不明白为什么辅助导航菜单消失...我希望它保持可见,以便最终用户不必来回走动。
HTML:
<div class="floor"><div id="content">
<div id="hide_show">
<nav2>
<h2>Menù </h2>
<div id="menuSX">
<ul><h2>Number of Bedrooms</h2>
<li><a class="menuitem" href="#A">1</a></li>
<li><a class="menuitem" href="#B">2</a></li>
<li><a class="menuitem" href="#C">3</a></li>
</ul>
</div>
</nav2>
<div class="menubox" id="A">
<nav2><div id="menuSX"><ul><h2>Floor Plan</h2><li><a class="menuitem" href="#floor1">Reed</a></li>
<li><a class="menuitem" href="#floor2">Sotol</a></li>
<li><a class="menuitem" href="#floor3">Yucca</a></li>
</ul></div></nav2>
</div>
<div class="menubox" id="B">
<h2>Sotol</h2></div>
<div class="menubox" id="C">
<h2>Yucca</h2></div>
</div>
<div class="menubox"id="floor1"><a href="http://sanisidroapartmentssantafe.com/wp-content/uploads/2013/12/home-placeholder2.png"><img src="http://sanisidroapartmentssantafe.com/wp-content/uploads/2013/12/home-placeholder2.png" alt="home-placeholder2" width="175" height="195" class="alignnone size-full wp-image-122" /></a>
Make our Santa Fe apartment community your home with a variety of one-, two-, and three-bedroom floor plans to choose from. Settle into a pet-friendly luxury apartment home that suits your current lifestyle and enjoy the fact that there is also room to grow.</div>
</div>
<div class="clear"></div></div>
CSS:
.floor{
max-width: 953px;
border-top: 6px solid #ccc;
padding: 15px;
border-left: 1px solid #ccc;
border-right: 1px solid #ccc;
border-bottom: 1px solid #ccc;
}
.entry-content li{
margin: 0;
}
.entry-content ul{
list-style: none;
}
nav2 ul, nav2 ol {list-style: none; list-style-image: none; margin: 0; padding: 0;}
nav2.collapsible > h2 {
background-color: #fff;
cursor: pointer;
}
.menuitem {
display: block;
background-color: #fff;
margin-bottom: 0.2em;
color: #333;
max-width: 200px;
padding-left: 25px;
}
.menuitem:hover {
background-color: #AE7450;
}
@media only screen and (min-width: 768px) {
nav2 > h2 {display: none;}
nav2 {
float: left;
width: 30%;
}
#hide_show {
float: left;
width: 100%;
}
#menuSX {
float: left;
width: 100%;
}
#Content3 {
float: right;
width: 69%;
}
.menubox{
max-width: 375px;
}
}
.small-type{
font-size: 10px;
font-family: 'Average Sans', san-serif;
}
Jquery的:
$(function() {
var collapsed = true;
$('nav2>h2').click(function() {
collapsed = !collapsed;
formatSidebar();
});
$(window).resize(formatSidebar);
formatSidebar();
function formatSidebar() {
if ($(window).width() > 766) {
$('nav2').removeClass('collapsible');
$('nav2 #menuSX').show();
} else {
$('nav2').addClass('collapsible');
if (collapsed) {
$('nav2 #menuSX').hide();
$('nav2 > h2').removeClass('minus');
} else {
$('nav2 #menuSX').show();
$('nav2 > h2').addClass('minus');
}
}
};
});
$(document).ready(function() {
$(".menubox").hide();
$(".menubox:first").hide();
$(".menuitem").click(function(event) {
event.preventDefault();
$(".menubox").hide();
var relatedDivID = $(this).attr('href');
$("" + relatedDivID).fadeToggle("slow","linear");
});
});</script>
我只链接了每个导航菜单上的第一个菜单项。如果我可以让二级导航菜单保持不变,我会很高兴。谢谢你的帮助。 这是页面:http://www.sanisidroapartmentssantafe.com/floor-plans
答案 0 :(得分:0)
问题是子菜单“平面图”中的项目具有相同的类别(.menuitem
)和“卧室数量”中的项目。
现在,当用户点击某个选项时,它会隐藏包含“平面图”列表的.menubox
。当您在多间卧室之间切换时,这很好。但单击“楼层平面图”列表下的选项时会出现问题。因为这些选项具有相同的类(.menuitem
),其被设置为隐藏.menubox
,在这种情况下,如果也是“平面图”链接的容器。
对此的一个解决方法如下:
更改与“平面图”下的选项相关联的课程。
<div class="menubox" id="A">
<nav2>
<div id="menuSX"><ul><h2>Floor Plan</h2>
<li><a class="sub-menuitem" href="#floor1">Reed</a></li>
<li><a class="sub-menuitem" href="#floor2">Sotol</a></li>
<li><a class="sub-menuitem" href="#floor3">Yucca</a></li>
</ul>
</div>
</nav2>
</div>
在这里,我已将每个类更改为.sub-menuitem
。
将此类添加到css:
.menuitem, .sub-menuitem {
display: block;
background-color: #fff;
margin-bottom: 0.2em;
color: #333;
max-width: 200px;
padding-left: 25px;
}
.menuitem:hover, .sub-menuitem:hover {
background-color: #AE7450;
}
最后为.sub-menuitem
添加了一些javascript以防止对新类的默认操作。
$(document).ready(function() {
$(".menubox").hide();
$(".menubox:first").hide();
$(".menuitem").click(function(event) {
event.preventDefault();
$(".menubox").hide();
var relatedDivID = $(this).attr('href');
$("" + relatedDivID).fadeToggle("slow","linear");
});
$(".sub-menuitem").click(function(event) {
event.preventDefault();
var relatedDivID = $(this).attr('href');
$("" + relatedDivID).fadeToggle("slow","linear");
});
});
如果需要,这样做也可以让你以后为这个子菜单分配一些额外的事件。