jstree - JS Tree-选中所有子节点时选择父节点

标签 jstree jstree-search

我正在使用 JSTree。当你检查一个节点时,我想看看它的所有兄弟节点是否也被选中,如果是,我想选择父节点并取消选择所有子节点。我如何使用 JsTree 实现这一目标?

最佳答案

您可能需要调整它以适应您的情况,但这基本上应该是您所需要的:

$(jsTreeSelector).on("select_node.jstree", function (node, selected) {
    var parentNode = $(jsTreeSelector).jstree(true).get_parent(selected.node.id);
    var siblingNodes = $(jsTreeSelector).jstree(true).get_children_dom(parentNode);
    var allChecked = true;
    $(siblingNodes).each(function () {
        if (!$(this).children('.jstree-anchor').hasClass('jstree-clicked')) allChecked = false;
    });
    if (allChecked) {
        $(siblingNodes).each(function () {
            $(jsTreeSelector).jstree(true).deselect_node(this);
        });
        $(jsTreeSelector).jstree(true).select_node(parentNode);
    }
});

确保在你的树配置中将 three_state 设置为 false

关于jstree - JS Tree-选中所有子节点时选择父节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37123002/

相关文章:

javascript - 过滤包含多个单词的过滤列表

javascript - jstree : Uncaught TypeError: Cannot read property 'children' of undefined

jsTree AJAX 搜索与一些节点 child ?

javascript - JSTree 添加新的父节点或子子节点

javascript - 限制jstree从一棵树拖拽到另一棵树

php - 如何将点击事件添加到 jstree(jQuery 插件)的异步列表?

jquery - 如何取消选择 JSTree 中的所有节点

javascript - Jstree:当我重新加载我的树时,我无法将所有复选框重置为默认取消选中

javascript - 在jsp中的jstree中的每个节点上添加可点击按钮

jquery - 如何在jsTree中隐藏根节点?