2010-08-18 127 views
1

如何让我的所有嵌套列表在单击时折叠和展开。副导航菜单问题

这是我的xHTML。

<ul> 
    <li><a href="some-link.php">First Nested List</a></li> 
    <li><a href="some-link.php">First Nested List</a></li> 
    <li><a href="some-link.php">First Nested List</a> 
     <ul> 
     <li><a href="some-link.php">Second Nested List</a></li> 
     <li><a href="some-link.php">Second Nested List</a></li> 
     <li><a href="some-link.php">Second Nested List</a> 
      <ul> 
      <li><a href="some-link.php">Third Nested List</a></li> 
      <li><a href="some-link.php">Third Nested List</a></li> 
      <li><a href="some-link.php">Third Nested List</a> 
       <ul> 
       <li><a href="some-link.php">Fourth Nested List</a></li> 
       <li><a href="some-link.php">Fourth Nested List</a></li> 
       <li><a href="some-link.php">Fourth Nested List</a></li> 
       </ul> 
      </li> 
      <li><a href="some-link.php">Third Nested List</a></li> 
      <li><a href="some-link.php">Third Nested List</a></li> 
      </ul> 
     </li> 
     <li><a href="some-link.php">Second Nested List</a></li> 
     <li><a href="some-link.php">Second Nested List</a></li> 
     </ul> 
    </li> 
    <li><a href="some-link.php">First Nested List</a></li> 
    <li><a href="some-link.php">First Nested List</a></li> 
</ul> 

回答

4

我不知道究竟你以后,但一般的概念是这样的:

$("li").click(function(e) { 
    $(this).children('ul').toggle(400); //toggle the immediate child <ul> 
    return false; //stop the click from bubbling up, and the href working 
}); 

You can give it a try with your markup here

1

这个jQuery插件可能是你在找什么:http://docs.jquery.com/Plugins/Treeview

您的代码将是这个样子......

<html> 
<head> 
    <script src="http://code.jquery.com/jquery-latest.js"></script> 
    <link rel="stylesheet" href="http://dev.jquery.com/view/trunk/plugins/treeview/demo/screen.css" type="text/css" /> 
    <link rel="stylesheet" href="http://dev.jquery.com/view/trunk/plugins/treeview/jquery.treeview.css" type="text/css" /> 
    <script type="text/javascript" src="http://dev.jquery.com/view/trunk/plugins/treeview/jquery.treeview.js"></script> 
    <script> 
    $(document).ready(function(){ 
    $("#example").treeview(); 
    }); 
    </script> 

</head> 
<body> 
<ul id="example" class="filetree"> 
    <li><a href="some-link.php">First Nested List</a></li> 
    <li><a href="some-link.php">First Nested List</a></li> 
    <li><a href="some-link.php">First Nested List</a> 
     <ul> 
     <li><a href="some-link.php">Second Nested List</a></li> 
     <li><a href="some-link.php">Second Nested List</a></li> 
     <li><a href="some-link.php">Second Nested List</a> 
      <ul> 
      <li><a href="some-link.php">Third Nested List</a></li> 
      <li><a href="some-link.php">Third Nested List</a></li> 
      <li><a href="some-link.php">Third Nested List</a> 
       <ul> 
       <li><a href="some-link.php">Fourth Nested List</a></li> 
       <li><a href="some-link.php">Fourth Nested List</a></li> 
       <li><a href="some-link.php">Fourth Nested List</a></li> 
       </ul> 
      </li> 
      <li><a href="some-link.php">Third Nested List</a></li> 
      <li><a href="some-link.php">Third Nested List</a></li> 
      </ul> 
     </li> 
     <li><a href="some-link.php">Second Nested List</a></li> 
     <li><a href="some-link.php">Second Nested List</a></li> 
     </ul> 
    </li> 
    <li><a href="some-link.php">First Nested List</a></li> 
    <li><a href="some-link.php">First Nested List</a></li> 
</ul> 
</body> 
</html> 

有,这取决于你的类中调用可用的不同风格你的父母<ul>标签,所以看看这些演示,并选择你最喜欢的一个:http://view.jquery.com/trunk/plugins/treeview/demo/

0

类似于其他的想法,我把这样的东西放在一起作为一个粗略的草案:

  $(".nav ul").hide(); 
      $(".nav li").click(function(){ 
       if ($(this).children("ul").length > 0) { 
        $(this).children("ul").toggle(); 
        return false; 
       } 
       return true; 
      }); 

在我的例子,我添加了类“导航”到最外部UL避免与页面上的其他可能的ULS冲突的:

 <ul class="nav"> 
    <li><a href="some-link.php">First Nested List</a></li> 
    <li><a href="some-link.php">First Nested List</a></li> 
    <li><a href="some-link.php">First Nested List</a> 
     <ul> 
     <li><a href="some-link.php">Second Nested List</a></li> 
     <li><a href="some-link.php">Second Nested List</a></li> 
     <li><a href="some-link.php">Second Nested List</a> 
      <ul> 
      <li><a href="some-link.php">Third Nested List</a></li> 
      <li><a href="some-link.php">Third Nested List</a></li> 
      <li><a href="some-link.php">Third Nested List</a> 
       <ul> 
       <li><a href="some-link.php">Fourth Nested List</a></li> 
       <li><a href="some-link.php">Fourth Nested List</a></li> 
       <li><a href="some-link.php">Fourth Nested List</a></li> 
       </ul> 
      </li> 
      <li><a href="some-link.php">Third Nested List</a></li> 
      <li><a href="some-link.php">Third Nested List</a></li> 
      </ul> 
     </li> 
     <li><a href="some-link.php">Second Nested List</a></li> 
     <li><a href="some-link.php">Second Nested List</a></li> 
     </ul> 
    </li> 
    <li><a href="some-link.php">First Nested List</a></li> 
    <li><a href="some-link.php">First Nested List</a></li> 
</ul> 
+0

我不能让这与我的代码工作:( – synonyms 2010-08-18 04:11:38

+0

对 - 忘了我添加了一个类到最外面的ul - 看到我的更新:-) – brendan 2010-08-18 04:30:25

+0

仍然无法让它工作:( – synonyms 2010-08-18 04:32:48