[英]Jquery + select the first ul of a menu
我已经阅读了有关此问题的几篇文章,但找不到解决方案。
我创建了一个包含3个级别的菜单。 我想在第二级和第三级显示鼠标悬停。 为此,我使用代码:
$("#header ul.menu li").hover(
function(){
$(this).find("ul").fadeTo('slow', 0.9);
},
function(){
$(this).find("ul").fadeOut('slow');
}
);
没关系,并且子菜单在第一级上带有悬停出现。
但是,如果我将鼠标悬停在第二层和第三层,则第一个ul的一些ul孩子会消失。
如何仅选择函数中的第一个ul? 我尝试了几种方法,但没有成功:
$("#header ul.menu > li").hover(...
要么
$(this).children("ul")....
您能帮我解决这个问题吗?
多谢您的回覆。
您是否尝试过使用:eq伪选择器? http://api.jquery.com/eq-selector/
您可以使用索引选择任何元素:
$('a:eq(0)')
上面的代码将返回页面上的第一个<a>
元素。
我使用了以下方法,对我来说很好用。
$("ul.menu > li").hover(
function(){
$(this).find("ul").fadeTo('slow', 0.9);
},
function(){
$(this).find("ul").fadeOut('slow');
}
);
我已经找到了解决方案,但可能并不干净。 使用JQuery,我在第一个ul.menu(nav)上添加了一个类。 然后我写这段代码:
$(".menu-parent-wrapper > ul").addClass("nav");
$("#header ul.nav > li").hover(
function(){
$(this).find("ul").fadeTo('slow', 0.9);
},
function(){
$(this).find("ul").fadeOut('slow');
}
);
现在菜单可以了。 当我将鼠标悬停在第二层的项目上时,第三层不会消失。
如果您有其他解决方案,则可以发布新消息。
谢谢。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.