javascript - 仅折叠 CSS 树中的顶层

标签 javascript html css twitter-bootstrap tree

在我的模板中,我使用了与 this question. 中相同的树结构代码该问题的答案打开了树完全折叠的页面(jsfiddle)。

但是,我想实现这一点,以便在第一次打开页面时折叠树的所有顶级目录(在顶部示例中是父文件夹),但是单击其中一个顶级目录将完全打开向上所有子分支。现在它只会向下打开一层。如果您能帮助我完成这项工作,我将不胜感激。

树的当前 Javascript 如下。

$(function () {
    $('.tree li:has(ul)').addClass('parent_li').find(' > span').attr('title', 'Collapse this branch');
    $('.tree li ul > li').hide();
    $('.tree li.parent_li > span').on('click', function (e) {
        var children = $(this).parent('li.parent_li').find(' > ul > li');
        if (children.is(":visible")) {
            children.hide('fast');
            $(this).attr('title', 'Expand this branch').find(' > i').addClass('icon-plus-sign').removeClass('icon-minus-sign');
        } else {
            children.show('fast');
            $(this).attr('title', 'Collapse this branch').find(' > i').addClass('icon-minus-sign').removeClass('icon-plus-sign');
        }
        e.stopPropagation();
    });
});

最佳答案

尝试改变

var children = $(this).parent('li.parent_li').find(' > ul > li');

var children = $(this).parent('li.parent_li').find('li');

关于javascript - 仅折叠 CSS 树中的顶层,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38927449/

相关文章:

javascript - UI 对话框移出 <form> 标签

html - 将一个 div 放在另一个元素下

javascript - Google Closure - 将数据形成为 json 对象

javascript - 如何使用正则表达式忽略 0 值进行价格验证?

javascript - 按 id 计算元素数量

javascript - JQuery 在向服务器发送变量时添加逗号

java - 抓取本地存储的 HTML 文件的数据

html - spring thymeleaf 文字下一行

html - 幻灯片放映中的多个图像

javascript - <pre> 标签在 IE 中设置 innerHTML 时丢失换行符