0

所以我有这个html:

<ul>
    <li><a>categ 1</a>
        <ul>
           <li><a>subcateg 1</a><li>
           <li><a>subcateg 1</a><li>
        </ul>
    <li><a>categ2</a>
        <ul>
           <li><a>subcateg 2</a><li>
           <li><a>subcateg 3</a>
              <ul>
                <li><a>sub sub categ 3</a><li>
                <li><a>sub sub categ 3</a><li>
              </ul>
           <li>
        </ul>
</ul>

等等

和 js 是http://jsfiddle.net/fMm3A/ - 点击红色区域(需要有一个图像,但对于这个测试我只是放了一个红色的 bg)

我想打开子菜单但不关闭父分支,但是当我打开其他分支时,其他分支将关闭

谢谢你

4

3 回答 3

1

你也可以用 CSS 做到这一点:

例如

改变你的CSS

#leftNav > li > ul { list-style:none; }

对此:

#leftNav > li > ul { list-style:none; display:none;}
#leftNav > li:hover > ul { list-style:none; display:block;}

注意:这仅适用于顶级。对于下一个级别,您需要做同样的事情。

例子

于 2013-07-25T09:33:07.367 回答
0

您在此处发布的 HTMl 列表充满了错误(您没有关闭列表(''),您忘记了一些标签......但是,在更正它们之后:

这个怎么样:http: //jsfiddle.net/wpWmM/2/

这是您的代码:http: //jsfiddle.net/fMm3A/12/

$('li').click(function(e){
    e.stopPropagation();
    $(this).children('ul').slideToggle();
    $(this).closest('.parent').siblings().children('ul').slideUp();
});

CSS:

ul{
    display:none;
}
ul.visible{
    display: block;
}

在 HTMl 中,您需要将类添加parent到 main 元素并将类visible添加到 main ul。你可以在我的小提琴上看到它。

于 2013-07-25T09:35:12.270 回答
0

将一些类应用于每个菜单链接,例如menuLink

ul使用类隐藏所有父级,例如hide

不如试试这个

$('.menuLink').click(function(){
           $(".hide").not($(this).next()).hide();
            $(this).next().toggle('slow');
        }); 

例子

于 2013-07-25T09:37:08.080 回答