1
这是我的第一篇文章,所以我提前道歉,任何不良的做法。我一直在寻找一段时间,但还没有遇到一个满足我需求的解决方案 - 也许我只是做错了。但在这里:使jQuery显示正确的子菜单,当存在
我正在建设一个网站使用大卡特尔CMS和第一次钻研jQuery。我正在尝试创建一个水平和居中的导航菜单,在适当的位置显示下面的子菜单。我很好用html和CSS,但我正在努力与jQuery。
的加价如下:
<nav>
<ul id="mainNav">
<li><a href="expand-the-sub-menu">Option 1</a>
<ul id="option1Nav">
<li><a href="somewhere">Option 1 Link 1</a></li>
<li><a href="somewhere">Option 1 Link 2</a></li>
<li><a href="somewhere">Option 1 Link 3</a></li>
<li><a href="somewhere">Option 1 Link 4</a></li>
<li><a href="somewhere">Option 1 Link 5</a></li>
</ul>
</li>
<li><a href="expand-the-sub-menu">Option 2</a>
<ul id="option2Nav">
<li><a href="somewhere">Option 2 Link 1</a></li>
<li><a href="somewhere">Option 2 Link 2</a></li>
<li><a href="somewhere">Option 2 Link 3</a></li>
<li><a href="somewhere">Option 2 Link 4</a></li>
<li><a href="somewhere">Option 2 Link 5</a></li>
</ul>
</li>
<li><a href="somewhere">Option 3</a></li>
<li><a href="somewhere">Option 4</a></li>
<li><a href="somewhere">Option 5</a></li>
<li><a href="somewhere">Option 6</a></li>
</ul>
</nav>
虽然这种格式不会发生变化,与子菜单选项的数目可能(客户端可以随意改变这一点)。 我的jQuery至今:
$('#mainNav ul').hide();
$('#mainNav li a').click(function(){
$('#mainNav li:has("ul")').each(
function(){
$('nav').animate({bottom:'60px'},300,'easeOutQuint',function(){
//Do magic stuff here - i.e. display the correct sub-menu.
});
}
);
});
目前,这一目标的所有选项(我无法捉摸为什么)点击时,我也还没有到如何只显示相应的子菜单底部。类可以添加到任何html元素,如果这有助于使事情更容易。
在此先感谢!
这是如此烦人简单!谢谢,但我也应该提到,只有一个子菜单应该在任何时候都可见。如果用户点击没有子菜单的选项,则全部隐藏。有没有简单的方法来完成这个? – verism 2012-08-15 14:19:36
当然..只需在开幕前关闭它们即可。请参阅更新。 – CraftyFella 2012-08-15 14:20:43
令人惊叹!再次感谢。 – verism 2012-08-15 14:22:29