2011-09-23 63 views
-1

我想要在点击父列表中的某个点时出现子列表(类似于点击可以最小化和最大化维基百科文章中的内容表),我该如何实现它?列表出现在点击事件中

我已经学习了几年前的基础HTML,并且不记得如何做到这一点,即使我没有学过它。谢谢您的帮助。

+0

的Javascript + DOM可能?你有没有尝试过自己的东西? – JohnFx

回答

1

Withou任何脚本(JavaScript或jQuery的),你不能做这个。

这里是例如与jQuery

JS

$('#nav > li').click(function() { 
    $(this).find('ul').toggle(); 
}); 

HTML:

<ul id="nav"> 
    <li>Menu item</li> 
    <li>Menu item</li> 
    <li>Menu item</li> 
    <li>Menu item</li> 
    <li>Menu item 
     <ul class="sub-menu"> 
      <li>Menu item</li> 
      <li>Menu item</li> 
      <li>Menu item</li>   
     </ul> 
    </li> 
</ul> 

代码:http://jsfiddle.net/4mgqK/2/

+0

我知道已经很晚了,但是如果你让我成为一个noob,你能告诉我我该如何摆放它们吗?我是否将所有代码放在一个文件中,或者将JS和HTML文件分开?如果他们要分开什么名字? – Oxwivi

+0

不管你如何命名它,如果你将脚本和标记放在同一页面上,不要忘记引用jQuery库。如果它将是单独的文件,你也需要参考这个文件。不要忘了将这个脚本包装到'$(document).ready(function(){/ * code here * /})中;' – Samich

+0

因此,我把你写在页面顶部的答案中?现在你提到它了,我注意到在'ul'标签处引用'nav'文档。谢谢! – Oxwivi

0

你是指树视图吗?如果是这样,像jsTree可能适合您的目的。

如果您只需显示或隐藏HTML块(例如,包含在div元素中),那么jQuery toggle可能就是您需要的。

0

您可以使用javascript完成此操作。如果你使用jQuery,这很容易,但你必须添加jQuery到你的页面。有关基本jQuery的更多信息可以在这里找到:

http://docs.jquery.com/How_jQuery_Works

如果导入的jQuery,你可以这样来做:

$("#parentElementId").click(function() 
// if your parentElement has been clicked, excecute this function 
{ 
    $("#childElementId").show(); // if it has been hidden before with css(display:none) 
});