我正在使用花式树过滤器插件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;
});
任何人都可以指出我做错了什么吗?如果您需要任何细节,请告诉我。
答案 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。请注意,计数器值是错误的,但在我的情况下不需要。