解决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 相关文章推荐
jQuery代码优化 遍历篇
Nov 01 Javascript
jquery删除提示框弹出是否删除对话框
Jan 07 Javascript
初识Node.js
Sep 03 Javascript
javascript模拟map输出与去除重复项的方法
Feb 09 Javascript
详解Vue中使用v-for语句抛出错误的解决方案
May 04 Javascript
vue实现nav导航栏的方法
Dec 13 Javascript
Vue.js 十五分钟入门图文教程
Sep 12 Javascript
node.js使用redis储存session的方法
Sep 26 Javascript
Vue框架TypeScript装饰器使用指南小结
Feb 18 Javascript
vue遍历生成的输入框 绑定及修改值示例
Oct 30 Javascript
JavaScript 异步时序问题
Nov 20 Javascript
JavaScript中展开运算符及应用的实例代码
Jan 14 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 IP转换整形(ip2long)的详解
2013/06/06 PHP
php冒泡排序、快速排序、快速查找、二维数组去重实例分享
2014/04/24 PHP
php猴子选大王问题解决方法
2015/05/12 PHP
php采集中国代理服务器网的方法
2015/06/16 PHP
laravel框架数据库配置及操作数据库示例
2019/10/10 PHP
PHP实现文件上传与下载
2020/08/28 PHP
Javascript日期对象的dateAdd与dateDiff方法
2008/11/18 Javascript
javascript开发中因空格引发的错误
2010/11/08 Javascript
js中top、clientTop、scrollTop、offsetTop的区别 文字详细说明版
2011/01/08 Javascript
当自定义数据属性为json格式字符串时jQuery的data api问题探讨
2013/02/18 Javascript
一款jquery特效编写的大度宽屏焦点图切换特效的实例代码
2013/08/05 Javascript
javascript中的document.open()方法使用介绍
2013/10/09 Javascript
JavaScript实现班级随机点名小应用需求的具体分析
2014/05/12 Javascript
javascript中传统事件与现代事件
2015/06/23 Javascript
js代码实现点击按钮出现60秒倒计时
2021/01/28 Javascript
Javascript复制实例详解
2016/01/28 Javascript
Node.js EventEmmitter事件监听器用法实例分析
2019/01/07 Javascript
vue单文件组件lint error自动fix与styleLint报错自动fix详解
2019/01/08 Javascript
在vue中使用echars实现上浮与下钻效果
2019/11/08 Javascript
如何优雅地在Node应用中进行错误异常处理
2019/11/25 Javascript
Python装饰器使用示例及实际应用例子
2015/03/06 Python
Python类的定义、继承及类对象使用方法简明教程
2015/05/08 Python
Python基于PycURL实现POST的方法
2015/07/25 Python
Python使用Paramiko模块编写脚本进行远程服务器操作
2016/05/05 Python
Python3控制路由器——使用requests重启极路由.py
2016/05/11 Python
Django框架使用mysql视图操作示例
2019/05/15 Python
python按键按住不放持续响应的实例代码
2019/07/17 Python
python 接口实现 供第三方调用的例子
2019/08/13 Python
HTML5标签使用方法详解
2015/11/27 HTML / CSS
Html5导航栏吸顶方案原理与对比实现
2020/06/10 HTML / CSS
Myprotein意大利官网:欧洲第一运动营养品牌
2018/11/22 全球购物
英文自荐信
2013/12/19 职场文书
百货商场楼层班组长竞聘书
2014/03/31 职场文书
搭讪开场白台词大全
2015/05/28 职场文书
2015年中秋晚会主持词
2015/07/01 职场文书
2016年“5.12”护士节致辞
2015/07/31 职场文书