我有一个简单的测试CSS下拉菜单。我希望其中一个菜单是点击而不是鼠标中心,类似于Google上的“更多”链接。 我已经设法用JQuery做到这一点,但是当鼠标离开时,菜单消失。JQuery模拟单击和悬停
如何强制让下拉菜单保持到用户点击屏幕上的其他位置,就像在Google上一样?
这里是我的测试脚本:
<html>
<head>
<script type='text/javascript' src='http://code.jquery.com/jquery-1.5.1.min.js'></script>
<script type="text/javascript">
$(document).ready(function(){
$("#mainNav .more").hover(
function() {
$("#mainNav li ul").css('display','none');
},
function() {
});
$("#mainNav .more a").click(function(){
$("#mainNav li ul").css('display','block');
$("#mainNav .more a").blur();
return false;
});
});
</script>
<style>
/*TOP LEVEL*/
#mainNav, #mainNav ul {padding: 0;margin: 0;list-style: none;list-style-image:none;}
#mainNav li a {display: block;padding:4px;margin-right:15px;color:#000;font-weight:bold;font-size:0.9em;}
#mainNav li {float: left;list-style: none;list-style-image:none;margin:0;}
#mainNav li a:hover{color:#ff000;text-decoration:none;}
/*DROPDOWN*/
#mainNav li ul {position: absolute;background-color: #eee;right: -999em;}
#mainNav li ul li{width:100%;margin:2px 0px 2px 0px;border:none;}
#mainNav li:hover ul { /*POPUP/DROPDOWN*/
right:auto;
}
#mainNav li li a{width:100%;font-weight:normal;}
#mainNav li li a:hover{font-weight:bold;color:#000;}
#mainNav li li a, #mainNav li li a:visited {margin:0;padding-left:16px;padding-top:7px;padding-bottom:7px;}
</style>
</head>
<body>
<ul id="mainNav">
<li><a href="">Home</a></li>
<li><a href="">Menu 1 (Mouseover)</a>
<ul>
<li><a href="">1.1</a></li>
<li><a href="">1.2</a></li>
</ul>
</li>
<li class="more"><a href="">Menu 2 (Click)</a>
<ul>
<li><a href="">2.1</a></li>
<li><a href="">2.2</a></li>
</ul>
</li>
</ul>
</body>
</html>
嗨tvanfosson。感谢您的建议。我现在只是通过它们,但是当鼠标移出列表时,无法让菜单2保持可见状态。 – iltdev 2011-03-23 13:07:40
@user - 只是看着你的CSS。这就是搞砸你。除了物品被徘徊时,你已经将它移开了。你需要用JavaScript代替CSS处理。 – tvanfosson 2011-03-23 13:40:42
哦,我和你在一起,'正确'的属性也需要改为'自动'。 谢谢:) – iltdev 2011-03-23 14:51:26