【发布时间】:2013-07-19 20:40:36
【问题描述】:
我正在尝试设计如下L
<ul class="top">
<li><a href="#">Menu1</a></li>
<li>
<a href="#">Menu2</a>
<ul class="sub">
<li><a href="#">SubMenu1</a></li>
<li>
<a href="#">SubMenu2</a>
<ul class="subsub">
<li><a href="#">SubSubMenu1</a></li>
<li><a href="#">SubSubMenu2</a></li>
</ul>
</li>
<li><a href="#">SubMenu3</a></li>
</ul>
</li>
<li><a href="#">Menu3</a></li>
</ul>
我的想法是,如果节点有子节点,那么子菜单就会打开。所以在这种情况下,如果用户将鼠标悬停在Menu2上,则会出现SubMenu1、SubMenu2和SubMenu3,如果用户悬停在SubMenu2上,则会出现SubSubMenu1、SubSubMenu2。
我目前有以下 jQuery:
$(document).ready(function () {
$("ul.top li").hover(function () { //When trigger is hovered...
if ($("ul.top li").hasClass("sub")) {
$(this).parent().find("ul.sub").slideDown('fast').show();
$(this).parent().hover(function () {}, function () {
$(this).parent().find("ul.sub").slideUp('slow');
});
}
});
});
但是,当我将鼠标悬停在 Menu1 上时,Menu 2 的子菜单仍在打开。
任何帮助将不胜感激!
【问题讨论】:
-
添加你的css,最好做一个jsfiddle
-
您确定要
$(this).parent().find()而不是像第一个那样只需要$this.find(),您将一直到顶部并向下搜索ul.sub -
为什么要使用javascript来控制你的菜单?即使用户禁用了javascript,也有大量的css菜单css3menu.com可以工作。
-
我希望在 Jquery 中完成
-
我添加了 alert("has class");下面 if ($("ul.top li").hasClass(".sub")) { 但他们都没有返回这个警报,所以似乎找不到这个类
标签: javascript jquery jquery-ui