树使用ul li和javascript没有插件

时间:2014-03-29 12:41:46

标签: javascript jquery tree

我尝试在here中使用没有插件的javascript创建一个简单的树
这是我的HTML

<ul class="tree">
    <li>First Child
        <ul>
            <li>First Child
                <ul>
                    <li>First Child</li>
                    <li>Second Child</li>
                    <li>Third Child</li>
                    <li>Fourth Child</li>
                </ul>
            </li>
            <li>Second Child</li>
            <li>Third Child</li>
            <li>Fourth Child</li>
        </ul>
    </li>
    <li>Second Child</li>
    <li>Third Child</li>
    <li>Fourth Child</li>
</ul>

和我的js

$( "li" ).on( "click", function() {
    if ($(this).children('ul').css('display') == 'none') {
        $(this).children('ul').css("display", "");
    } else {
        //alert( $( this ).text() );
        $(this).children('ul').css("display", "none");
    }
});

但它只适用于第一级。怎么做谢谢。

1 个答案:

答案 0 :(得分:6)

事件冒泡正在那里发生。使用e.stopPropagation()来阻止它。顺便说一下,您不需要更改/检查显示属性以使任何元素可见/隐藏,只需使用     .toggle()

尝试,

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

DEMO