jquery简单的可折叠列表问题

时间:2013-10-31 17:58:44

标签: jquery

我正在尝试创建一个简单的可折叠多级别,其中每个ul都是可折叠的。我很难弄清楚我做错了什么。 我的脚本是jsfiddle

<ul id="usernav">
<li>Manage
    <ul >
        <li >child11
         <ul>
             <li> some1</li>
             <li> some2</li>
         </ul>
        </li>
        <li>child12</li>
    </ul>
</li>
<li>Subscriptions
    <ul>
        <li>E-Briefings</li>
        <li>E-Briefings Subscriptions</li>
        <li>Knowledge Briefings</li>
    </ul>
</li>
  <li>Media Store
    <ul>
        <li>Image Store</li>
        <li>Document Store</li>
        <li>Media Store</li>
    </ul>
</li>

我的脚本是

 $('#usernav').find('ul').hide();    
$('li').click(function() {
    $(this).children('ul').toggle();
});

1 个答案:

答案 0 :(得分:2)

单击元素的子元素时,也会单击该元素。因此,当您点击子li时,该事件也会触发父li。使用stopPropagation()可防止事件冒泡。

http://jsfiddle.net/nrVYn/

$('#usernav').find('ul').hide();

$('li').click(function(e) {
    $(this).children('ul').toggle();
    e.stopPropagation();
});