我有一个下拉菜单,但我可以让li
s 在单击后保持可见。我想要的是li
当我点击菜单外或点击时隐藏ul
:
我尝试使用return false;
,event.stopPropagation();
但我无法让它工作 - 我希望有人知道如何解决这个问题 - 我认为它应该相当简单。
这是我的代码:
<link rel="stylesheet" href="css/4style.css" type="text/css" media="screen">
<script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
<ul id="nav">
<li >
<a href="#">Topic 1</a>
<ul class="show">
<li><a href="#">Link 1</a></li>
<li><a href="#">Link 2</a></li>
<li><a href="#">Link 3</a></li>
<li><a href="#">Link 4</a></li>
<li><a href="#">Link 5</a></li>
</ul>
</li>
<li >
<a href="#">Topic 2</a>
<ul class="show">
<li><a href="#">Link 1</a></li>
<li><a href="#">Link 2</a></li>
<li><a href="#">Link 3</a></li>
<li><a href="#">Link 4</a></li>
<li><a href="#">Link 5</a></li>
</ul>
</li>
</ul>
<script type="text/javascript">
$(document).ready(function(){
$('#nav li a').click(function () { // binding onclick
if ($(this).hasClass('select_ul')) {
$("#nav li ul").slideUp(100); // hiding submenu
$("#nav .select_ul").removeClass("select_ul");
} else {
$("#nav li ul").slideUp(100); // hiding submenu
$("#nav .select_ul").removeClass("select_ul");
if ($(this).next(".show").length) {
$(this).addClass("select_ul"); // display popup
$(this).next(".show").slideDown(200);
}
}
});
$('#nav li ul li a').click(function() {
$("#nav li ul li a.select_li").removeClass("select_li");
$(this).addClass('select_li');
});
// SKJUL NAV VED KLIK UDENFOR
$('html').click(function() {
$("#nav").hide(100);
});
$('#nav').click(function(event){
event.stopPropagation();
});
}); //END OF DOCUMENT READY
</script>