JS Tree - Выберите родительский узел, когда выбраны все дочерние узлы

Я использую JSTree. Когда вы проверяете узел, я хочу посмотреть, все ли узлы-братья также выбраны, если да, я хочу выбрать родительский узел и отменить выбор всех дочерних узлов. Как я могу добиться этого с JsTree?

1 ответ

Решение

Возможно, вам придется настроить его в соответствии с вашей ситуацией, но это должно быть в основном то, что вам нужно:

$(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 в вашем дереве

Другие вопросы по тегам