解决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 相关文章推荐
经常用的图片在容器中的水平垂直居中实例
Jun 10 Javascript
JavaScript入门教程(6) Window窗口对象
Jan 31 Javascript
javascript OFFICE控件测试代码
Dec 08 Javascript
IE下双击checkbox反应延迟问题的解决方法
Mar 27 Javascript
jQuery的text()方法用法分析
Dec 20 Javascript
JQuery异步获取返回值中文乱码的解决方法
Jan 29 Javascript
jQuery Tags Input Plugin(添加/删除标签插件)详解
Jun 20 Javascript
使用JS读取XML文件的方法
Nov 25 Javascript
Vue.js实战之利用vue-router实现跳转页面
Apr 01 Javascript
ES6小技巧之代替lodash
Jun 07 Javascript
JavaScript进阶(三)闭包原理与用法详解
May 09 Javascript
Node 模块原理与用法详解
May 13 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
15个小时----从修改程序到自己些程序
2006/10/09 PHP
攻克CakePHP系列一 连接MySQL数据库
2008/10/22 PHP
php 8小时时间差的解决方法小结
2009/12/22 PHP
php统计数组元素个数的方法
2015/07/02 PHP
TP5框架实现上传多张图片的方法分析
2020/03/29 PHP
深入解析PHP底层机制及相关原理
2020/12/11 PHP
JavaScript 创建对象和构造类实现代码
2009/07/30 Javascript
eval的两组性能测试数据
2012/08/17 Javascript
鼠标焦点离开文本框时验证的js代码
2013/07/19 Javascript
jQuery实现新消息在网页标题闪烁提示
2015/06/23 Javascript
谈谈Jquery中的children find 的区别有哪些
2015/10/19 Javascript
JS基于clipBoard.js插件实现剪切、复制、粘贴
2016/05/03 Javascript
完美的js div拖拽实例代码
2016/09/24 Javascript
Javascript中常用的检测方法小结
2016/10/08 Javascript
JS图片轮播与索引变色功能实例详解
2017/07/06 Javascript
js使用highlight.js高亮你的代码
2017/08/18 Javascript
微信小程序仿微信运动步数排行(交互)
2018/07/13 Javascript
JavaScript 面向对象基础简单示例
2019/10/02 Javascript
小程序角标的添加及绑定购物车数量进行实时更新的实现代码
2020/12/07 Javascript
[05:00]TI9战队采访 - Royal Never Give Up
2019/08/20 DOTA
Python中关键字nonlocal和global的声明与解析
2017/03/12 Python
浅析python协程相关概念
2018/01/20 Python
Python最小二乘法矩阵
2019/01/02 Python
新年快乐! python实现绚烂的烟花绽放效果
2019/01/30 Python
12个步骤教你理解Python装饰器
2019/07/01 Python
python使用布隆过滤器的实现示例
2020/08/20 Python
Python用SSH连接到网络设备
2021/02/18 Python
西班牙灯具网上商店:Lampara.es
2018/06/05 全球购物
英语感恩演讲稿
2014/01/14 职场文书
大学生先进事迹材料
2014/02/16 职场文书
聚美优品陈欧广告词
2014/03/14 职场文书
医药公司采购员岗位职责
2014/09/12 职场文书
2015教师年度工作总结范文
2015/04/07 职场文书
Java Kafka 消费积压监控的示例代码
2021/07/01 Java/Android
logback 实现给变量指定默认值
2021/08/30 Java/Android
MySQL 数据库范式化设计理论
2022/04/22 MySQL