我正在渲染具有以下配置的jstree
$('#deliverables').jstree({ 'core': { 'data': data },'search': { 'case_insensitive': true,'show_only_matches' : true },'plugins': ['search'] }); $('#deliverable_search').keyup(function(){ $('#deliverables').jstree('search',$(this).val()); });
使用此配置,如果搜索文本至少找到一个节点,jstree仅显示匹配的节点.但如果搜索文本与任何节点不匹配,则jstree显示所有节点.我发现这有点奇怪.我在这里错过了什么吗?
解决方法
这是一个想要的行侠,见:
https://github.com/vakata/jstree/issues/1192#issuecomment-128042329
但是您可以将一个处理程序附加到search
事件中,如果结果为空则相应地执行,例如.您可以使用hide_all
方法隐藏所有树节点.
码:
.on('search.jstree',function (nodes,str,res) { if (str.nodes.length===0) { $('#deliverables').jstree(true).hide_all(); } })
$('#deliverable_search').keyup(function(){ $('#deliverables').jstree(true).show_all(); $('#deliverables').jstree('search',$(this).val()); });