永远不要隐藏fancytree过滤器中的文件夹

时间:2017-10-26 10:21:46

标签: javascript jquery fancytree

我正在使用花式树过滤器插件http://wwwendt.de/tech/fancytree/demo/#sample-ext-filter.html。我有模式:"隐藏" 设置,因为我想隐藏不匹配的节点。是否有可能永远不会隐藏文件夹?

我认为我可以通过添加自定义过滤器来实现这一点,但我必须做错事,因为过滤器似乎没有生效。

我正在尝试的自定义过滤器的代码 -

    //tree initialized before this step
    var tree = $("#tree").fancytree("getTree");
    searchText = $('#searchText').val().replace(/([.?*+^$[\]\\(){}|-])/g, "\\$1");
    var rex = new RegExp(searchText, 'ig');

    tree.filterNodes(function(node) {
        if(node.isFolder() ) {
            return "skip";
        }
        var match = rex.test(node.title);
        return match;
    });

任何人都可以指出我做错了什么吗?如果您需要任何细节,请告诉我。

1 个答案:

答案 0 :(得分:0)

最后,想通了。对于有相同要求的其他人,我使用了以下代码 -

function(node) {
            var found = new RegExp(match, "i").test(node.title);
            if(node.isFolder() ) {
                return true;        //always match a folder
            } else {
                return found;  // otherwise match the nodes only
            }
        }

还需要将leavesOnly值设置为false。请注意,计数器值是错误的,但在我的情况下不需要。