简体   繁体   English

树使用ul li和javascript没有插件

[英]Tree using ul li and javascript without plugin

I try to make a simple tree using javascript without plugin in here 我尝试在这里使用没有插件的javascript制作一个简单的树
Here is my html 这是我的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>

and my js 和我的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");
    }
});

but it only working with first level. 但它只适用于第一级。 How to do that thanks. 怎么做谢谢。

Event bubbling is happening out there. 事件冒泡正在那里发生。 use e.stopPropagation() to block that. 使用e.stopPropagation()来阻止它。 And by the way you don't need to change/check the display property to make any element visible/hidden, just use .toggle() . 顺便说一句,您不需要更改/检查display属性以使任何元素可见/隐藏,只需使用.toggle()

Try, 尝试,

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

DEMO DEMO

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM