在 jsTree 中只显示匹配的节点

时间:2021-01-13 09:01:54

标签: jquery jstree jstree-search

我有一个基于 jsTree 插件的类选择器的通用代码。我在另一个 cshtml 页面中使用了 jsTree。我只想在 jsTree 中显示匹配的节点。我已经设置了只显示匹配节点的选项,但它不起作用。

有人可以帮我吗?

$(".jsTree").each(function (index, element) {
    if ($(element).data("isProcessed") != "1" && $(element).attr("isProcessed") != 1) {
        $(element).data("isProcessed", "1");
        $(element).attr("isProcessed", "1");
        $(this).jstree({
            core:
            {
                check_callback: true
            },
            checkbox:
            {
                keep_selected_style: true,
                three_state: ($(element).data("three-state") == "false" ? false : true)
            },
            search:
            {
                case_insensitive: true,
                show_only_matches: true
            },
            plugins: ["checkbox", "search"]
        }).on('search.jstree', function (nodes, str, res) {
            if (str.nodes.length === 0) {
                $(element).jstree(true).hide_all();
            }
        });
    }
});

$(document).ready(function () {
    $('#jsroletree_search').keyup(function () {
        $('#jsRoleTree').jstree(true).show_all();
        $('#jsRoleTree').jstree('search', $(this).val());
    });
});

1 个答案:

答案 0 :(得分:1)

我有时在公共代码中遇到同样的问题 jsTree 不允许在同一页面上再有一个实例。

能否请您更换您的代码

$(document).ready(function () {
    $('#jsroletree_search').keyup(function () {
        $('#jsRoleTree').jstree(true).show_all();
        $('#jsRoleTree').jstree('search', $(this).val());
    });
});

$(document).ready(function () {
    $('#jsroletree_search').keyup(function () {
    $('#jsRoleTree').jstree(true).show_all();
    $('#jsRoleTree').jstree('search', $(this).val());
    $('#jsRoleTree .jstree-hidden').hide();    
  });
});
相关问题