slideToggle:通过单击子链接隐藏父级

时间:2012-05-30 15:52:04

标签: jquery slidetoggle

我想通过点击手柄链接打开和关闭来显示<nav>。当我点击其中一个子链接时,我还想关闭<nav>。在句柄链接和子项上使用slideToggle不起作用。句柄链接工作正常,但<nav>折叠并在您单击子链接时打开。

js是怎么回事: http://jsfiddle.net/qHZe8/

提前致谢!

4 个答案:

答案 0 :(得分:3)

您的<ul>元素也有类pull,因此点击其中的一个链接也会触发click事件处理程序以再次切换该元素。

您需要停止从<ul>内的链接传播事件,以免发生这种情况。

jQuery("ul.pull li a").click(function(e) {
    e.stopPropagation();
    $("nav.mobile-navigation").slideUp("fast");
});

答案 1 :(得分:1)

问题是你有两个元素pull

一种可能的解决方案是使用不同的选择器:

jQuery("a.pull").click(function() {
    $("nav.mobile-navigation").slideToggle("fast");
});

DEMO: http://jsfiddle.net/qHZe8/1/

答案 2 :(得分:1)

问题是您在ul和链接中使用相同的类来打开它,因此每当您单击子链接时它都会执行这两个操作。

如果从ul标记中删除该类,它应该可以工作

http://jsfiddle.net/slfede/qHZe8/2/

答案 3 :(得分:0)

您已为.pull和句柄提供了相同的CSS类(<ul>)。因此,单击项目也会注册为.pull处理程序的单击。正确的一个:http://jsfiddle.net/X2A3C/