解决ztree搜索中多级菜单展示不全问题


Posted in Javascript onJuly 05, 2017

ztree 官网的中的 Search Nodes 例子中,所有菜单都是连着的,如果出现某个菜单下无子节点,那么在搜索时,此节点便不会自动展开,这里给出对应的增强版代码

var setting = {
    data: {
      key: {
        title: "t"
      },
      simpleData: {
        enable: true
      }
    },
    view: {
      fontCss: getFontCss
    }
  };
  var zNodes =[
    { id:1, pId:0, name:"系统参数",open:true},
    { id:11, pId:1, name:"通用参数"},
    { id:111, pId:11, name:"状态A"},
    { id:112, pId:11, name:"状态B"},
    { id:12, pId:1, name:"日志"},
    { id:121, pId:12, name:"操作类型"},
    { id:122, pId:12, name:"操作结果"},
    { id:1221, pId:122, name:"操作结果1"},
    { id:1222, pId:122, name:"操作结果2"},
    { id:12221, pId:1222, name:"操作结果21"},
    { id:12222, pId:1222, name:"操作结果22"},
    { id:12223, pId:1222, name:"操作结果23"},
    { id:2, pId:0, name:"业务参数",open:true},
    { id:21, pId:2, name:"工单类型"},
    { id:22, pId:2, name:"监控类型"},
    { id:23, pId:22, name:"监控子类型1"},
    { id:24, pId:22, name:"监控子类型2"},
    { id:25, pId:24, name:"监控子子类型1"},
    { id:26, pId:24, name:"监控子子类型2"},
  ];
  var lastValue = '', nodeList = [], fontCss = {};
  function searchNode(e) {
    var zTree = $.fn.zTree.getZTreeObj("treeDemo");
    var value = $.trim(key.val());
    lastValue = value;
    //zTree.expandAll(true);
    $('#treeDemo').html("");
    $.fn.zTree.init($("#treeDemo"), setting, zNodes);
    if (value != "") {
      nodeList = zTree.getNodesByParamFuzzy("name", value);
    } else {
      nodeList = zTree.getNodesByParamFuzzy("name", "|||||||||||||||");
    }
    updateNodes(true);
  }
  var parentNode = [];
  function updateNodes(highlight) {
    var zTree = $.fn.zTree.getZTreeObj("treeDemo");
    parentNode = [];
    for( var i=0, l=nodeList.length; i<l; i++) {
      nodeList[i].highlight = highlight;
      zTree.updateNode(nodeList[i]);
      if (!nodeList[i].isParent && !parentNode.contains(nodeList[i].getParentNode().pId)) {
        zTree.expandNode(nodeList[i].getParentNode(), true, true, true);
        parentNode.push(nodeList[i].getParentNode().pId);
        console.log(nodeList[i].getParentNode().pId);
      } else {
        zTree.expandNode(nodeList[i], true, true, true);
      }
    }
    console.log(parentNode);
  }
  Array.prototype.contains = function (obj) {
    var i = this.length;
    while (i--) {
      if (this[i] === obj) {
        return true;
      }
    }
    return false;
  }
  function getFontCss(treeId, treeNode) {
    return (!!treeNode.highlight) ? {color:"#A60000", "font-weight":"bold"} : {color:"#333", "font-weight":"normal"};
  }
  var key;
  $(document).ready(function(){
    $.fn.zTree.init($("#treeDemo"), setting, zNodes);
    key = $("#search_name");
    key.bind("blur", searchNode);
  });

效果图

解决ztree搜索中多级菜单展示不全问题

以上所述是小编给大家介绍的ztree搜索中多级菜单展示不全的解决方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
用JavaScript和注册表脚本实现右键收藏Web页选中文本
Jan 28 Javascript
关于js new Date() 出现NaN 的分析
Oct 23 Javascript
两个listbox实现选项的添加删除和搜索
Mar 01 Javascript
javascript实现时间格式输出FormatDate函数
Jan 13 Javascript
JS仿淘宝实现的简单滑动门效果代码
Oct 14 Javascript
AngularJS解决ng界面长表达式(ui-set)的方法分析
Nov 07 Javascript
js实现鼠标左右移动,图片也跟着移动效果
Jan 25 Javascript
老生常谈javascript的面向对象思想
Aug 22 Javascript
快速解决select2在bootstrap模态框中下拉框隐藏的问题
Aug 10 Javascript
原生JS实现的跳一跳小游戏完整实例
Jan 27 Javascript
jQuery实现input[type=file]多图预览上传删除等功能
Aug 02 jQuery
vue中使用带隐藏文本信息的图片、图片水印的方法
Apr 24 Javascript
JS FormData上传文件的设置方法
Jul 05 #Javascript
JS实现unicode和UTF-8之间的互相转换互转
Jul 05 #Javascript
js 获取元素的具体样式信息getcss(实例讲解)
Jul 05 #Javascript
Angular 2父子组件数据传递之@Input和@Output详解(下)
Jul 05 #Javascript
使用prop解决一个checkbox选中后再次选中失效的问题
Jul 05 #Javascript
JS鼠标滚动分页效果示例
Jul 05 #Javascript
jQuery实现返回顶部按钮和scroll滚动功能[带动画效果]
Jul 05 #jQuery
You might like
PHP strtok()函数的优点分析
2010/03/02 PHP
PHP使用适合阅读的格式显示文件大小的方法
2015/03/05 PHP
Laravel中服务提供者和门面模式的入门介绍
2017/11/06 PHP
javascript Array.remove() 数组删除
2009/08/06 Javascript
Javascript 倒计时源代码.(时.分.秒) 详细注释版
2011/05/09 Javascript
js代码实现随机颜色的小方块
2015/07/30 Javascript
javascript的BOM
2016/05/03 Javascript
Nodejs下DNS缓存问题浅析
2016/11/16 NodeJs
jquery实现的table排序功能示例
2017/03/10 Javascript
详解angular element()方法使用
2017/04/08 Javascript
angularjs中回车键触发某一事件的方法
2017/04/24 Javascript
JavaScript正则表达式简单实用实例
2017/06/23 Javascript
jQuery AJAX与jQuery事件的分析讲解
2019/02/18 jQuery
vue实现全屏滚动效果(非fullpage.js)
2020/03/07 Javascript
[00:34]TI7不朽珍藏III——纯金地穴编织者饰品展示
2017/07/15 DOTA
跟老齐学Python之有容乃大的list(4)
2014/09/28 Python
Python闭包的两个注意事项(推荐)
2017/03/20 Python
Python 3.6 性能测试框架Locust安装及使用方法(详解)
2017/10/11 Python
Python3实现对列表按元组指定列进行排序的方法分析
2018/12/22 Python
详解重置Django migration的常见方式
2019/02/15 Python
Flask中endpoint的理解(小结)
2019/12/11 Python
Python计算公交发车时间的完整代码
2020/02/12 Python
Python class的继承方法代码实例
2020/02/14 Python
python中time.ctime()实例用法
2021/02/03 Python
python 实现网易邮箱邮件阅读和删除的辅助小脚本
2021/03/01 Python
师范生实习的个人自我鉴定
2013/10/20 职场文书
如何填写个人简历自我评价
2013/12/10 职场文书
法律专业应届生自荐信范文
2014/01/06 职场文书
文明餐桌行动实施方案
2014/02/19 职场文书
农业局学习党的群众路线教育实践活动心得体会
2014/03/07 职场文书
《长城和运河》教学反思
2014/04/14 职场文书
购房个人委托书范本
2014/10/11 职场文书
2014年收银工作总结
2014/11/13 职场文书
妇产科护理心得体会
2016/01/22 职场文书
mysql查询的控制语句图文详解
2021/04/11 MySQL
Python中with上下文管理协议的作用及用法
2022/03/18 Python