我正在处理一个个人项目,只是遇到了一些麻烦。JQuery多个ID隐藏1格
我想做一个简单的悬停菜单。
想法是当用户将鼠标悬停在列表元素上时,它显示一个div,以及鼠标悬停在div上的位置或最初在div上悬停的元素消失。例如
。
当您将鼠标悬停在其中一个div上时。
<ul>
<li>Link 1</li>
<li>Link 2</li>
</ul>
<div id="link1div"><div id="link1innercontent"></div></div>
<div id="link2div"></div>
现在,当你将鼠标悬停在li上时,div出现,当鼠标移动到div上时,div消失。
我想要做的是当你鼠标与李或div的div消失。我遇到了麻烦,因为当我尝试这样做时,两个div都消失了。
我下面的代码:
<div id="menu">
<ul>
<li id="link_1">Link 1</li>
<li id="link_2">Link 2</li>
</ul>
</div>
<div id="link_1"><div id="link1innercontent"></div></div>
<div id="link_2"></div>
$("#menu li").hover(function(){
var name1 = $(this).attr('id'); //ignore these, they are for selecting appropriate ids
var name = name1.split('_'); //ignore these, they are for selecting appropriate ids
openMenu(name[1]);
$("#m_"+name[1]).mouseleave(function(){ // I have tried $("#m_"+name[1]+",#"+name1) but it
closeMenu(name[1]); // hides the div before you can access it.
});
});
function openMenu(name){
$("#m_"+name).slideDown();
}
function closeMenu(name){
$("#m_"+name).slideUp();
}
任何帮助将不胜感激。
感谢您的回复怪异,我明白你的意思,但我的问题主要是在菜单链接之间切换。由于mouseleave在我进入和离开div时正常工作,只是在切换不同菜单选项时发生的情况是,以前的div不会消失,因为mouseleave位于div而不是li,并且我没有进入mouseleave的div事件来触发,但是如果我在li上放置一个mouseleave或mouseout,那么当我将鼠标移出li时,div将会消失。 – java