解决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 相关文章推荐
对于this和$(this)的个人理解
Sep 08 Javascript
javascript框架设计读书笔记之模块加载系统
Dec 02 Javascript
JS实现双击编辑可修改状态的方法
Aug 14 Javascript
浅析Bootstrap验证控件的使用
Jun 23 Javascript
IE下JS保存图片的简单实例
Jul 15 Javascript
JS实现拖拽的方法分析
Dec 20 Javascript
从零学习node.js之搭建http服务器(二)
Feb 21 Javascript
vue中element 上传功能的实现思路
Jul 06 Javascript
webpack4.x CommonJS模块化浅析
Nov 09 Javascript
jQuery实现的自定义轮播图功能详解
Dec 28 jQuery
ES6 Proxy实现Vue的变化检测问题
Jun 11 Javascript
javascript中Set、Map、WeakSet、WeakMap区别
Dec 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 9 大缓存技术总结
2015/09/17 PHP
thinkPHP中U方法加密传递参数功能示例
2018/05/29 PHP
laravel框架模型和数据库基础操作实例详解
2020/01/25 PHP
Locate a File Using a File Open Dialog Box
2007/06/18 Javascript
用javascript做拖动布局的思路
2008/05/31 Javascript
基于Jquery的动态创建DOM元素的代码
2010/12/28 Javascript
javascript中简单的进制转换代码实例
2013/10/26 Javascript
jQuery获取当前对象标签名称的方法
2014/02/07 Javascript
Javascript实现简单的富文本编辑器附演示
2014/06/16 Javascript
深入理解关于javascript中apply()和call()方法的区别
2016/04/12 Javascript
vue.js入门(3)——详解组件通信
2016/12/02 Javascript
jquery pagination插件动态分页实例(Bootstrap分页)
2016/12/23 Javascript
微信小程序新增的拖动组件movable-view使用教程
2017/05/20 Javascript
jquery动态赋值id与动态取id方法示例
2017/08/21 jQuery
AngularJS中controller控制器继承的使用方法
2017/11/03 Javascript
vue+axios 前端实现的常用拦截的代码示例
2018/08/23 Javascript
详解ES6 系列之异步处理实战
2018/10/26 Javascript
vue ssr服务端渲染(小白解惑)
2019/11/10 Javascript
vue项目中使用bpmn为节点添加颜色的方法
2020/04/30 Javascript
Python内置函数——__import__ 的使用方法
2017/11/24 Python
django中模板的html自动转意方法
2018/05/27 Python
python 以16进制打印输出的方法
2018/07/09 Python
python生成1行四列全2矩阵的方法
2018/08/04 Python
Python面向对象之类的定义与继承用法示例
2019/01/14 Python
python中的&amp;&amp;及||的实现示例
2019/08/07 Python
使用python客户端访问impala的操作方式
2020/03/28 Python
利用python绘制正态分布曲线
2021/01/04 Python
苹果音乐订阅:Apple Music
2018/08/02 全球购物
在校生党员自我评价
2013/09/25 职场文书
党员个人思想汇报
2013/12/28 职场文书
售后服务经理岗位职责范本
2014/02/22 职场文书
项目合作意向书模板
2014/07/29 职场文书
慈善捐赠倡议书
2014/08/30 职场文书
煤矿隐患排查制度
2015/08/05 职场文书
学校运动会感想
2015/08/10 职场文书
2016年“我们的节日·清明节”活动总结
2016/04/01 职场文书