javascript - 尝试仅显示匹配项时出现 jstree-grid 问题

标签 javascript jstree jstree-search

我正在使用内置搜索插件 jstree 和 jstree-grid 插件。我想做的是使用 show_only_matches 选项进行搜索,这样只显示匹配的节点,其余的节点被隐藏。这就是我的问题所在。

我正在使用 jstree-grid 插件,尽管搜索工作正常,但网格出现故障。它不会像您期望的那样隐藏额外的行信息。例如,有一个根节点Root,它有3个子节点; child1、child2、child3,如果搜索child3,则打开Root,只显示child3。但是,child1 和 child2 的网格值仍然显示。

下面的图片链接就是一个例子。搜索test2仅显示test2 child ,但每个学校下都有2个测试,并且仍然显示隐藏的测试信息。

/image/84Q65.png

最佳答案

这是我现在用来显示/隐藏适当的网格值的方法,它只是稍微改变了搜索功能。

    $('#treeSearch').keyup(function () {
        if(to) { clearTimeout(to); }
        to = setTimeout(function () {
            var v = $('#treeSearch').val();
            $('#jstree').jstree(true).search(v);

            //hide/show grid values for nodes affected by searching
            var hidden = $('ul li:hidden');
            var visible = $('ul li:visible');

            $.each(hidden, function(i){
                $('div[id*=' + hidden[i].id + ']').hide();
            });

            $.each(visible, function(i){
                $('div[id*=' + visible[i].id + ']').show();
            });

        }, 500);
    });

关于javascript - 尝试仅显示匹配项时出现 jstree-grid 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28417163/

相关文章:

jquery - 在 jsTree 中只显示匹配的节点

jquery - 如何将jstree搜索改为ajax搜索

javascript - PHP Ajax 调用以清除并填充下拉菜单

Javascript 获取自 2012 年初以来的时间(以毫秒为单位)

javascript - 未创建 jstree 节点

jquery - 如何将节点从 div 拖放到 JStree 上? (jstree版本: 3. 0.4)

javascript - 使用 Lodash/Underscore 从对象列表中跳过并返回对象

javascript - 固定可滚动 div 内的 anchor

jstree - 从 jstree 节点清除缓存

jquery - jsTree上下文菜单不显示CSS中Relative的位置