我使用jstree,内置搜索插件和jstree-grid插件。我尝试做的是使用show_only_matches选项进行搜索,这样只显示匹配的节点,其余的都是隐藏的。这就是我的问题所在。
我正在使用jstree-grid插件,即使搜索工作正常,网格也会出现故障。它并不像您期望的那样隐藏额外的行信息。例如,有一个根节点Root,它有3个子节点; child1,child2,child3,如果搜索child3,则打开Root并仅显示child3。但是,仍会显示child1和child2的网格值。
下面的图片链接就是一个例子。搜索test2仅显示test2子项,但每个学校下面都有2个测试,隐藏的测试信息仍在显示。
答案 0 :(得分:2)
以下是我现在用于显示/隐藏相应网格值的内容,它只是稍微改变了搜索功能。
$('#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);
});