[英]Adding additional drop down menu with Jquery
我正在嘗試使用下拉菜單創建click事件,但是似乎只能使第一個菜單下拉,一旦單擊菜單,我就無法使其消失。 任何幫助,將不勝感激。 我覺得這很容易。 這是我的代碼:
<body>
<div class="container">
<ul id="nav">
<li><a href="#">Home</a></li>
<li id="clickMe"><a href="#s1">Menu 1</a>
<span id="s1"></span>
<ul class="subs">
<li><a href="#">Header a</a>
<ul>
<li><a href="#">Submenu x</a></li>
<li><a href="#">Submenu y</a></li>
<li><a href="#">Submenu z</a></li>
</ul>
</li>
<li><a href="#">Header b</a>
<ul>
<li><a href="#">Submenu x</a></li>
<li><a href="#">Submenu y</a></li>
<li><a href="#">Submenu z</a></li>
</ul>
</li>
</ul>
</li>
<li id="clickMe" ><a href="#s2">Menu 2</a>
<span id="s2"></span>
<ul class="subs">
<li ><a href="#">Header c</a>
<ul>
<li><a href="#">Submenu x</a></li>
<li><a href="#">Submenu y</a></li>
<li><a href="#">Submenu z</a></li>
</ul>
</li>
<li><a href="#">Header d</a>
<ul>
<li><a href="#">Submenu x</a></li>
<li><a href="#">Submenu y</a></li>
<li><a href="#">Submenu z</a></li>
</ul>
</li>
</ul>
</li>
<li ><a href="#s3">Menu 3</a>
<span id="s3"></span>
<ul class="subs">
<li><a href="#">Header e</a>
<ul>
<li><a href="#">Subsdfa</a></li>
<li><a href="#">Submenu y</a></li>
<li><a href="#">Submenu z</a></li>
</ul>
</li>
<li><a href="#">Header f</a>
<ul>
<li><a href="#">Submenu x</a></li>
<li><a href="#">Submenu y</a></li>
<li><a href="#">Submenu z</a></li>
</ul>
</li>
<li><a href="#">Header g</a>
<ul>
<li><a href="#">Submenu x</a></li>
<li><a href="#">Submenu y</a></li>
<li><a href="#">Submenu z</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#">Menu 4</a></li>
<li><a href="#">Menu 5</a></li>
</ul>
</div>
<script type="text/javascript">
$('#clickMe').click(function(){
$('#nav li ul.subs').toggle();
});
</script>
</body>
這是CSS
* {
margin: 0;
padding: 0;
}
html {
background-color: #fff;
height: 100%;
}
body {
color: #333333;
font: 0.75em/1.5em Arial,sans-serif;
}
.container {
margin-left: auto;
margin-right: auto;
margin-top: 30px;
width: 96%;
}
/* common and top level styles */
#nav span {
display: none;
}
#nav, #nav ul {
list-style: none outside none;
margin: 0;
padding: 0;
}
#nav {
background-color: #F5F5F5;
border-bottom: 5px solid #333333;
float: left;
margin-left: 1%;
margin-right: 1%;
position: relative;
width: 98%;
}
#nav ul.subs {
background-color: #FFFFFF;
box-shadow: 1px 1px 5px rgba(0, 0, 0, 0.2);
color: #333333;
display: none;
left: 0;
padding: 2%;
position: absolute;
top: 54px;
width: 96%;
}
#nav > li {
border-bottom: 5px solid transparent;
float: left;
margin-bottom: -5px;
text-align: left;
-moz-transition: all 300ms ease-in-out 0s;
-ms-transition: all 300ms ease-in-out 0s;
-o-transition: all 300ms ease-in-out 0s;
-webkit-transition: all 300ms ease-in-out 0s;
transition: all 300ms ease-in-out 0s;
}
#nav li a {
display: block;
text-decoration: none;
-moz-transition: color 450ms ease-in-out 0s, background-color 450ms ease-in-out 0s;
-ms-transition: color 450ms ease-in-out 0s, background-color 450ms ease-in-out 0s;
-o-transition: color 450ms ease-in-out 0s, background-color 450ms ease-in-out 0s;
-webkit-transition: color 450ms ease-in-out 0s, background-color 450ms ease-in-out 0s;
transition: color 450ms ease-in-out 0s, background-color 450ms ease-in-out 0s;
white-space: normal;
}
#nav > li > a {
color: #333333;
display: block;
font-size: 1.3em;
line-height: 49px;
padding: 0 15px;
text-transform: uppercase;
}
#nav > li:hover > a, #nav > a:hover {
background-color: #F55856;
color: #FFFFFF;
}
#nav li.active > a {
background-color: #333333;
color: #FFFFFF;
}
/* submenu */
#nav li:hover ul.subs {
display: none;
}
#nav ul.subs > li {
display: inline-block;
float: none;
padding: 10px 2%;
vertical-align: top;
width: 8%;
}
#nav ul.subs > li a {
color: #777777;
line-height: 20px;
}
#nav ul li a:hover {
color: #F55856;
}
#nav ul.subs > li > a {
font-size: 1.3em;
margin-bottom: 10px;
text-transform: uppercase;
}
#nav ul.subs > li li {
float: none;
padding-left: 8px;
-moz-transition: padding 150ms ease-out 0s;
-ms-transition: padding 150ms ease-out 0s;
-o-transition: padding 150ms ease-out 0s;
-webkit-transition: padding 150ms ease-out 0s;
transition: padding 150ms ease-out 0s;
}
#nav ul.subs > li li:hover {
padding-left: 15px;
}
感謝您的任何建議。 我只希望在單擊導航時將其下拉並停留在那里,直到我單擊離開或進入下一個菜單。
需要刪除所有重復的ID。 根據定義,ID必須是唯一的。 改為上課
您可以嘗試以下方法:
$('#nav > li').click(function () {
$(this).siblings().find('ul.subs').hide();
$(this).find('ul.subs').toggle();
});
點擊即可完成打開/關閉。 但是使用hover
可能會更加用戶友好
類似但使用hover
$('#nav > li').hover(function () {
$(this).siblings().find('ul.subs').hide();
$(this).find('ul.subs').show();
},function(){
$(this).find('ul.subs').show();
});
注意:僅使用CSS無需腳本即可完成懸停版本
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.