我正在渲染具有以下配置的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()); });
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。