jQuery - 只显示当前的ul(使用标签作为点击而非li)

时间:2011-08-29 14:43:09

标签: jquery navigation toggle html-lists children

我正在尝试在以下导航中显示/隐藏子ul's。我设法让它在Aleksi Yrttiaho的帮助下工作。

然后我意识到我没有将列表项编码为我的jsFiddle中的链接,并且一旦我执行了该功能,有人可以帮助我让它再次工作吗?

This jsFiddle是正确的标记,但功能不起作用

This is the old markup(基本上是标签),你可以看到它正常工作

所以唯一的区别是我希望函数在点击链接时运行,而不是单击li。

非常感谢, 红色

2 个答案:

答案 0 :(得分:1)

尝试一下

$("nav li").find("ul").hide().end().find("a")
// hide all other ul's in the nav
.click(function(e) {
    $(this).parent().siblings().find('ul').fadeOut('fast');
    $(this).parent().children('ul').delay(200).fadeToggle('fast');
});

http://jsfiddle.net/866UZ/

答案 1 :(得分:0)

在您的标记中,您应该将nav内的所有符号括在ul标记中。因为li应始终位于ul标记内。您的选择器也是nav ul li,它会在ul内查找nav标记,因为它没有按预期工作。

看一下我修复过的这个工作演示。

http://jsfiddle.net/6Dh8j/24/