javascript - 使用没有插件的 ul li 和 javascript 的树

标签 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");
    }
});

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

最佳答案

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

尝试,

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

DEMO

关于javascript - 使用没有插件的 ul li 和 javascript 的树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22731227/

相关文章:

javascript - 将字符串转换为模板字符串

javascript - 制表系统事件类未添加

jQuery CORS 内容类型选项

java - 在 Java 中搜索树中的节点

javascript - 如何选择在 D3 力定向图中使用哪个 JSON 文件

javascript - 使用 cookie 切换主体类别

jQuery:如果 href 仅包含 #,则防止在 <a> 标记上跳转

javascript - Jquery UI 日期选择器如何

haskell - 使用 State Monad 插入树

c++ - tree.hh - C++ 叶遍历