JS Tree - Select 父节点,当所有的子节点都被选中
JS Tree - Select parent node when all the child nodes are selected
我正在使用 JSTree。当你检查一个节点时,我想看看它的所有兄弟节点是否也被selected,如果是,我想select父节点和deselect所有子节点。我如何使用 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。当你检查一个节点时,我想看看它的所有兄弟节点是否也被selected,如果是,我想select父节点和deselect所有子节点。我如何使用 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