Javascript jquery导航始终打开第一个选项
我有一个导航元素,如下所示:Javascript jquery导航始终打开第一个选项,javascript,jquery,html,mouseevent,mouseenter,Javascript,Jquery,Html,Mouseevent,Mouseenter,我有一个导航元素,如下所示: <ul> <li name='first_item'> <ul> <li>item 1</li> <ul> <li>item 1.1</li> <li>item 1.2</li>
<ul>
<li name='first_item'>
<ul>
<li>item 1</li>
<ul>
<li>item 1.1</li>
<li>item 1.2</li>
</ul>
<li>item 2</li>
</ul>
</li>
</ul>
<ul>
<li>
<ul>
<li>item 3</li>
<li>item 4</li>
</ul>
</li>
</ul>
-
- 项目1
- 项目1.1
- 项目1.2
- 项目2
-
- 项目3
- 项目4
处理上下滑动的代码是:(nav是一个html元素,它是上面的父元素)
导航查找(“li”)。每个(
如果($(this.find(“ul”).length>0){
_回调=假;
$(“”).text(“^”).appendTo($(this.children(“:first”);
//悬停时显示子AV
$(this.mouseenter(function()){
$(this.find(“ul”).stop(true,true.slideDown();
});
//退出时隐藏子菜单
$(this.mouseleave(function()){
$(this.find(“ul”).stop(true,true.slideUp();
});
}
});
当我将鼠标悬停在第一个_项上时,它会打开子菜单,在完成向下滑动后,它也会打开第1项的子菜单。我完全被这件事弄糊涂了。任何帮助都将不胜感激。首先,您似乎复制了jquery而没有使用该函数,因此这不是问题所在: nav.find(“li”).each(函数(){ 我认为问题是,你要去深海旅行,所以试试这个:
$(this).find(">ul")
或者这个:
$(this).children("ul")
从jQuery:
.children()
方法与.find()
方法的不同之处在于.children()
只沿DOM树向下移动一个级别,而.find()
可以向下移动多个级别以选择子元素(孙子等)还有。你能提供小提琴吗?这是一个活生生的例子顶部的红色导航条是问题所在,将鼠标悬停在gallery上,你会看到它你没有函数(){
在之后(
Rory在该函数中我应该做些什么来防止这种行为?我是一个安静的新手。非常感谢您的帮助,它正在按预期工作,是的,您对.find()函数的看法是正确的。
$(this).children("ul")