jsTree搜索问题-不隐藏节点

一、问题描述

设置了插件的show_only_matches为ture后,输入带匹配限制的短语,显示节点。但是如果输入的关键字不匹配任何节点,没有显示空,而是显示了所有节点。

二、原因

查询了资料得知:
这是jsTree的有意行为。
之前jsTree是隐藏所有节点的。但是当时对于这个报了很多错误。因此现在jsTree不会自动隐藏所有节点,因为它对于大多数应用来说是非常混乱和不合适的。

三、解决方案

但是如果你想隐藏全部节点也是有办法的。办法如下:
1.只要监听下search.jstree事件:

    .on('search.jstree', function (nodes, str, res) {
        if (str.nodes.length===0) {
            $('#deliverables').jstree(true).hide_all();
        }
    })

2.然后别忘记在进行新的搜索的时候把它们显示出来:

    $('#deliverable_search').keyup(function(){
        $('#deliverables').jstree(true).show_all();
        $('#deliverables').jstree('search', $(this).val());
    });

参考资料:https://stackoverflow.com/questions/32582224/jstree-showing-all-nodes-if-search-string-didnt-match-any-node/32690200#32690200

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,948评论 18 139
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,245评论 4 61
  • 【成为更好的自己】2016年记录(day10) 14年的时候,我写过一篇文章,引起了朋友们的一番热议,文章名字叫做...
    阿果MePlus阅读 468评论 0 0
  • 11月25日新闻简报 农历十月初八 星期六美丽的鱼为您推送。 周末愉快! 1、保监会:中美联泰电话销售欺骗投保人 ...
    睡遍全世界阅读 245评论 0 0