如何限制jstree中选定的子节点数?

时间:2015-09-17 12:52:39

标签: javascript jquery jstree

当我点击父节点时,我需要禁用一定数量的选定子节点。

if ($("#chart-type-dd").val() === "Floating Bubbles") {
    if ($('#disaggregate-by').val() == "Description") {
        $("#treeElement").bind("change_event", function (e, d) {
            var node = d.args[0]
            $("#treeElement").set_type("disabled", "#node")
        });
    }
}



$('#' + containerRef).jstree({
    "core": {
        "data": datum
    },
        "dataType": "text",
        "check_callback": true,
        "types": {
        "#": {
            "name": "YO",
                "valid_children": ["folder", "file"]
        },
            "root": {
            "icon": false,
                "valid_children": ["folder", "file"]
        },
            "folder": {
            "icon": false,
                "valid_children": ["folder", "file"]
        },
            "file": {
            "icon": false,
                "valid_children": []
        },
            "types": {
            "disabled": {
                "check_node": false,
                    "uncheck_node": false
            }
        }
    },
        "checkbox": {
        "real_checkboxes": "true"
    },
        "plugins": [
        "unique", "sort", "types", "checkbox"]
});
}

2 个答案:

答案 0 :(得分:0)

即使您提问缺少大量信息,请查看此fiddle

它基本上找到了特定元素的所有子元素,然后遍历所有子元素,为它们添加一个新类。

var children = document.getElementById("toto").children;
var limit = 5;
for (var i = 0; i < limit; ++i) {
    if (!children[i]) return;
    children[i].classList.add("off");
}

一旦达到你定义的限制,或者在达到限制之前没有更多的孩子,循环就会停止。

希望它有所帮助。

答案 1 :(得分:0)

试试conditionalselect插件。它在文档中描述 - 它提供了每次要选择节点时执行的回调,并且可以阻止选择。

相关问题