我创建了一个带有按钮和列表的DIV。我希望当我将鼠标悬停在按钮上时,列表应该显示以及我可以单击列表中的项目。当前列表显示在按钮悬停上,但是当我想要一些List项目点击它的消失时。
我的Html是
<div id="rentin">
<button id='rentInbutton'>Buy/Rent In</button>
<ul>
<li><a href="Accomodation.do?action=rin">Accomodation</a></li>
<li><a href="VehiclesRentIn.do?action=rin">Vehicles</a></li>
</ul>
</div>
我的Jquery代码是
$(document).ready(function(){
$('#rentin ul').hide();
$("#rentInbutton").hover(function(){
$('#rentin ul').show();},function(){
$('#rentin ul').hide();
});
} )
答案 0 :(得分:1)
您可以悬停retin
而不是悬停retinInButton
,因为按钮和列表位于retin
内,最初当列表隐藏时retin
区域几乎等于按钮区域,当列表是可见的,然后retin
将占用等于按钮加列表的空间,并且您不会松开列表,因为鼠标指针仍在retin
内,请参阅下面的代码
$(document).ready(function(){
$('#rentin ul').hide();
$("#rentin").hover(function(){
$('#rentin ul').show();},function(){
$('#rentin ul').hide();
});
});
<强> JSFiddle Demo 强>
答案 1 :(得分:0)
试试这个:
$(document).ready(function() {
$('#rentin ul').hide();
$("#rentInbutton").hover(function() {
$('#rentin ul').show();
});
})
答案 2 :(得分:0)
问题是当鼠标离开按钮时你隐藏了UL,而只有当鼠标离开UL或其容器时才应该隐藏它 - Demo
$("#rentInbutton").mouseover(function(){
$('#rentin ul').show();
});
$('#rentin').mouseleave(function(){
$('#rentin ul').hide();
});