jQuery下拉菜单有问题
我已经研究了大约3个小时了,现在没有肉汁,所以我最终屈服了,决定在这里提问。我有一只JSFIDLE,希望有人能看看并帮助我 基本上,我正在尝试创建一个简单的下拉菜单,除了一个小问题外,它工作得很好 当子菜单关闭时,您必须将鼠标移到子菜单上才能使其淡出。您正处于激活子菜单的主链接上,将主链接保留在右侧、左侧或顶部,子菜单将保持静止 我试着用我对JS的基本知识编写我自己的小脚本(我在JSFIDLE上对其进行了注释,以供您查看),如果我能让它只在从顶部、左侧和右侧离开链接时触发,它就会起作用。当您离开主链接并尝试访问子菜单时,子菜单在您的鼠标到达之前消失 我理解为什么会发生这种情况(我告诉它在离开类时消失。dropdown是应用于主链接的类。)但我不知道如何修复它。我对JS很陌生 不管怎样,如果我把你弄糊涂了,很抱歉,这是JS小提琴,让你更好地掌握 看看你是否能看到我的代码被注释掉的问题。如果您将“产品”链接保留在左侧、右侧和顶部,它将不会离开子菜单 然后,您可以取消对我的代码的注释,看看为什么它不起作用jQuery下拉菜单有问题,jquery,Jquery,我已经研究了大约3个小时了,现在没有肉汁,所以我最终屈服了,决定在这里提问。我有一只JSFIDLE,希望有人能看看并帮助我 基本上,我正在尝试创建一个简单的下拉菜单,除了一个小问题外,它工作得很好 当子菜单关闭时,您必须将鼠标移到子菜单上才能使其淡出。您正处于激活子菜单的主链接上,将主链接保留在右侧、左侧或顶部,子菜单将保持静止 我试着用我对JS的基本知识编写我自己的小脚本(我在JSFIDLE上对其进行了注释,以供您查看),如果我能让它只在从顶部、左侧和右侧离开链接时触发,它就会起作用。当您离开
我认为您的jQuery代码比它应该的要复杂一些 此外,您的主导航设置有一个奇怪的结构。而不是在主
和子
上,每个链接都是自己的
。您在每个
上都有“mainnav”的id,这有点奇怪,它不是有效的代码。(旁注:一个ID在页面上只能使用一次。如果要多次使用,请将其设置为类。)
我还以我喜欢的方式清理了一些CSS。这并不意味着它比你拥有的更好
HTML:
<ul id="mainnav">
<li><a href="#">news</a></li>
<li><a href="#">contact</a></li>
<li><a href="#">rentals</a></li>
<li><a href="#">services</a></li>
<li class="dropdown"><a href="#" >products</a>
<ul class="sublinks">
<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>
</ul>
</li>
<li><a href="#">about</a></li>
<li class="home"><a href="#">home</a></li>
</ul>
不管怎样,我做了一把js小提琴,效果很好
基本上,我所做的就是清理你的导航结构。如果在
中创建嵌套的
子链接,则只需在“dropdown”主链接的mousenter/mouseleave上执行所有操作。这样,当您将鼠标移出“子链接”ul时,它会向上滑动,因为它是“下拉”的子项-这有意义吗?是的,我试图避免使用内联块,因为它的反向兼容性很差,但哦,好吧。谢谢。内联块在较旧的浏览器中不能很好地工作,但是您可以始终使用display:block
和float:left
-内联块的唯一优点是可以使用上的
text align:center
将列表项居中。向左浮动时,你不能这样做。
$(function() {
$('.dropdown').mouseenter(function() {
$('.sublinks').slideDown(300);
});
$('.dropdown').mouseleave(function() {
$('.sublinks').slideUp(300);
});
});