在页面加载时隐藏子菜单 jquery
Hide sub menu on page load jquery
我创建了一个带有子菜单的垂直菜单。我使用了无序列表。当我的页面加载时,它会显示顶层菜单和子菜单,但是当我单击顶层时,它将隐藏子菜单,该子菜单适用于点击事件。我希望我的页面只显示顶级菜单,只有单击一次才会显示子菜单。我是 jquery 的新手,非常感谢您的帮助。
$(function() {
$('#menu li a').click(function(event) {
var elem = $(this).next();
if (elem.is('ul')) {
event.preventDefault();
$('#menu ul:visible').not(elem).slideUp();
elem.slideToggle();
}
});
});
#menu {
padding: 0;
margin: 0;
list-style-type: none;
font-size: 13px;
color: #717171;
width: 100%;
}
#menu li {
border-bottom: 1px solid #eeeeee;
}
#menu li a:hover {
color: White;
background-color: #ffcc00;
}
#menu a:link {
color: #717171;
text-decoration: none;
display: block;
padding: 7px 10px;
}
#menu a:hover {
color: White;
}
#menu li ul {
padding: 0;
margin: 0;
list-style-type: none;
background-color: #999;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul id="menu">
<li><a href="#">Top Menu 1</a>
<ul>
<li>
<a href="#" target="_parent">Menu 1</a>
</li>
<li>
<a href="#" target="_parent">Menu 2</a>
</li>
<li>
<a href="#" target="_parent">Menu 3</a>
</li>
</ul>
</li>
</ul>
<ul id="menu">
<li><a href="#">Top Menu 2</a>
<ul>
<li>
<a href="#" target="_parent">Menu 1</a>
</li>
</ul>
</li>
</ul>
<ul id="menu">
<li><a href="#">Top Menu 3</a>
<ul>
<li>
<a href="#" target="_parent">Menu 1</a>
</li>
</ul>
</li>
</ul>
<ul id="menu">
<li><a href="#">Top Menu 4</a>
<ul>
<li>
<a href="#" target="_parent">Menu 1</a>
</li>
</ul>
</li>
</ul>
隐藏以CSS开头的子菜单。
#menu li ul
{
display: none; /* hide sub uls */
padding:0;
margin:0;
list-style-type:none;
background-color:#999;
}
css 可以在没有 javascript 的情况下做到这一点。将 ul
子菜单设置为 display: none
。
#menu li ul
{
padding:0;
margin:0;
list-style-type:none;
background-color:#999;
display: none;
}
我创建了一个带有子菜单的垂直菜单。我使用了无序列表。当我的页面加载时,它会显示顶层菜单和子菜单,但是当我单击顶层时,它将隐藏子菜单,该子菜单适用于点击事件。我希望我的页面只显示顶级菜单,只有单击一次才会显示子菜单。我是 jquery 的新手,非常感谢您的帮助。
$(function() {
$('#menu li a').click(function(event) {
var elem = $(this).next();
if (elem.is('ul')) {
event.preventDefault();
$('#menu ul:visible').not(elem).slideUp();
elem.slideToggle();
}
});
});
#menu {
padding: 0;
margin: 0;
list-style-type: none;
font-size: 13px;
color: #717171;
width: 100%;
}
#menu li {
border-bottom: 1px solid #eeeeee;
}
#menu li a:hover {
color: White;
background-color: #ffcc00;
}
#menu a:link {
color: #717171;
text-decoration: none;
display: block;
padding: 7px 10px;
}
#menu a:hover {
color: White;
}
#menu li ul {
padding: 0;
margin: 0;
list-style-type: none;
background-color: #999;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul id="menu">
<li><a href="#">Top Menu 1</a>
<ul>
<li>
<a href="#" target="_parent">Menu 1</a>
</li>
<li>
<a href="#" target="_parent">Menu 2</a>
</li>
<li>
<a href="#" target="_parent">Menu 3</a>
</li>
</ul>
</li>
</ul>
<ul id="menu">
<li><a href="#">Top Menu 2</a>
<ul>
<li>
<a href="#" target="_parent">Menu 1</a>
</li>
</ul>
</li>
</ul>
<ul id="menu">
<li><a href="#">Top Menu 3</a>
<ul>
<li>
<a href="#" target="_parent">Menu 1</a>
</li>
</ul>
</li>
</ul>
<ul id="menu">
<li><a href="#">Top Menu 4</a>
<ul>
<li>
<a href="#" target="_parent">Menu 1</a>
</li>
</ul>
</li>
</ul>
隐藏以CSS开头的子菜单。
#menu li ul
{
display: none; /* hide sub uls */
padding:0;
margin:0;
list-style-type:none;
background-color:#999;
}
css 可以在没有 javascript 的情况下做到这一点。将 ul
子菜单设置为 display: none
。
#menu li ul
{
padding:0;
margin:0;
list-style-type:none;
background-color:#999;
display: none;
}