我有一个菜单,其中只有一个项目有一个子列表。这是HTML代码:
<div id="menu">
<ul>
<li><a href="index.html">Home</a></li>
<li><a href="#">Products</a></li>
<li><a href="#">About</a>
<ul>
<li><a href="#">Example One</a></li>
<li><a href="#">Example Two</a></li>
<li><a href="#">Example Three</a></li>
</ul>
</li>
</ul>
</div>
当我将鼠标放在菜单或子菜单上时,我想slideDown
菜单并保持打开状态。所以以下工作正常,但我想要悬停而不是点击。
$('#menu ul li').click(function() {
$('#menu ul li ul').slideToggle('slow', function() {
});
});
我尝试悬停,但它非常错,这里也是代码:
$("#menu ul li").hover(
function () {
$("#menu ul li ul").slideDown('slow');
},
function () {
$("#menu ul li ul").slideUp('slow');
}
);
我尝试在.stop(true, true)
之后添加$("#menu ul li ul").css("display", "block");
或slideDown
,但它仍然是错误的。
CSS
#menu ul {
list-style: none;
}
#menu ul li {
display: block;
float: left;
padding: 0;
margin: 0 30px;
}
#menu ul li a {
color: #8b4513;
text-decoration: none;
font-size: 16px;
}
#menu ul li a:hover {
text-decoration: underline;
}
#menu ul li a img {
position: relative;
top: 2px;
left: -4px;
}
#menu ul li ul {
position: absolute;
width: 151px;
height: 90px;
top: 59px;
left: 300px;
padding: 10px 0 0 0;
background: url(gfx/submenu.png) no-repeat;
z-index: 1;
}
#menu ul li ul li {
height: 27px;
float: none;
margin: 0 25px;
}
答案 0 :(得分:2)
<强> HTML 强>
<div id="menu">
<ul>
<li><a href="#">Home</a></li>
<li><a href="#">Products</a></li>
<li><a href="#">About</a>
<ul>
<li><a href="#">Example One</a></li>
<li><a href="#">Example Two</a></li>
<li><a href="#">Example Three</a></li>
</ul>
</li>
</ul>
</div>
<强> Jquery的强>
$("#menu ul li").hover(
function () {
$(this).children("ul").stop(true,true).slideDown('slow');
},
function () {
$(this).children("ul").stop(true,true).slideUp('slow');
}
);
答案 1 :(得分:0)
每次鼠标移过元素时都会触发悬停。改为使用输入/离开:
$("#menu ul li").mouseenter(
function () {
$("#menu ul li ul").slideDown('slow');
}
);
$("#menu ul li").mouseleave(
function () {
$("#menu ul li ul").slideUp('slow');
}
);
答案 2 :(得分:0)
小提琴演示:http://jsfiddle.net/ZMLyz/
$('#menu ul li').mouseenter(function() {
$(this).find('ul').slideDown('slow');
});
$('#menu ul li').mouseleave(function() {
$(this).find('ul').slideUp('slow');
});