如果搜索字符串没有匹配任何节点,则显示所有节点
jstree showing all nodes if search string didn't match any node
我正在用以下配置渲染jtree
$('#deliverables').jstree({
'core': {
'data': data
},
'search': {
'case_insensitive': true,
'show_only_matches' : true
},
'plugins': ['search']
});
$('#deliverable_search').keyup(function(){
$('#deliverables').jstree('search', $(this).val());
});
使用此配置,jtree仅在搜索文本找到至少一个节点时显示匹配的节点。但是,如果搜索文本与任何节点不匹配,jtree将显示所有节点。我觉得这有点奇怪。我错过什么了吗?
https://jsfiddle.net/t9fe58rt/1/链接供参考
这是一个预期的行为,参见: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());
});
演示:https://jsfiddle.net/xfn8aa19/
对于我来说,Irvin Dominin的答案是不够的
$('#deliverable_search').keyup(function () {
$('#deliverables').jstree(true).show_all();
$('.jstree-node').show();
$('#deliverables').jstree('search', $(this).val());
$('.jstree-hidden').hide();
$('a.jstree-search').parent('li').find('.jstree-hidden').show();
});
相关文章:
- 节点.js将变量显示为 HTML
- 如何在 JStree 3 中显示叶节点的类似文件的图标
- 使用模型创建实例显示'不是函数'(节点使用猫鼬)
- 从显示节点关系的csv文件中获取连接节点的数量
- Javascript:显示/隐藏HTML节点
- 回调返回响应,但当在API中发送时,响应在节点JS中显示为空白
- 使用节点下载高图表数据,但不在浏览器中显示
- 如何在D3Javascript中单击节点时显示和隐藏链接和节点
- 如何在返回后将状态保持为突出显示JQuery树视图的选定节点
- 如何在D3Javascript中将鼠标移动到节点上时显示和隐藏节点
- 节点.js显示在本地主机上,但不在同一台机器上的http上显示
- 节点.js 使用 Multer 上传图像显示未定义
- 如何在Vis JS有向图中逐个显示节点
- 打开 d3 树布局,通过在搜索框中键入 request 来显示用户搜索的节点
- 突出显示一组节点及其之间的关系
- Arbor js - 将鼠标移到节点上时,将节点 ID 显示为文本
- 节点检查器/Chrome 实例不显示源文件、调用堆栈、任何内容
- 如何在 Arbor js 中将鼠标悬停在节点上时显示节点的标签
- 根据来自后端的子节点显示表行
- 为什么不'DOM样式节点显示样式表应用的样式