从不在 fancytree 过滤器中隐藏文件夹
Never hide folders in fancytree filter
我正在使用花式树过滤器插件 http://wwwendt.de/tech/fancytree/demo/#sample-ext-filter.html。我设置了 mode: "hide" 因为我想隐藏不匹配的节点。是否可以永远不隐藏文件夹?
我以为我可以通过添加自定义过滤器来实现这一点,但我一定是做错了什么,因为过滤器似乎没有生效。
我目前正在尝试的自定义过滤器的代码 -
//tree initialized before this step
var tree = $("#tree").fancytree("getTree");
searchText = $('#searchText').val().replace(/([.?*+^$[\]\(){}|-])/g, "\");
var rex = new RegExp(searchText, 'ig');
tree.filterNodes(function(node) {
if(node.isFolder() ) {
return "skip";
}
var match = rex.test(node.title);
return match;
});
任何人都可以指出我做错了什么吗?如果您需要任何详细信息,请告诉我。
终于想通了。对于其他有相同要求的人,我使用了以下代码 -
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。请注意,计数器值是错误的,但在我的情况下不需要。
我正在使用花式树过滤器插件 http://wwwendt.de/tech/fancytree/demo/#sample-ext-filter.html。我设置了 mode: "hide" 因为我想隐藏不匹配的节点。是否可以永远不隐藏文件夹?
我以为我可以通过添加自定义过滤器来实现这一点,但我一定是做错了什么,因为过滤器似乎没有生效。
我目前正在尝试的自定义过滤器的代码 -
//tree initialized before this step
var tree = $("#tree").fancytree("getTree");
searchText = $('#searchText').val().replace(/([.?*+^$[\]\(){}|-])/g, "\");
var rex = new RegExp(searchText, 'ig');
tree.filterNodes(function(node) {
if(node.isFolder() ) {
return "skip";
}
var match = rex.test(node.title);
return match;
});
任何人都可以指出我做错了什么吗?如果您需要任何详细信息,请告诉我。
终于想通了。对于其他有相同要求的人,我使用了以下代码 -
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。请注意,计数器值是错误的,但在我的情况下不需要。