解决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 png 透明解决方案(推荐)
Aug 21 Javascript
Javascript中的window.event.keyCode使用介绍
Apr 26 Javascript
JS脚本defer的作用示例介绍
Jan 02 Javascript
Jquery 监视按键,按下回车键触发某方法的实现代码
May 11 Javascript
JavaScript设计模式之建造者模式介绍
Dec 28 Javascript
js使用setTimeout实现定时炸弹的方法
Apr 10 Javascript
jquery实现初次打开有动画效果的网页TAB切换代码
Sep 06 Javascript
HTML中setCapture、releaseCapture 使用方法浅析
Sep 25 Javascript
微信页面倒计时代码(解决safari不兼容date的问题)
Dec 13 Javascript
Vue.js系列之vue-router(上)(3)
Jan 03 Javascript
原生js实现中奖信息无间隙滚动效果
Jan 18 Javascript
在Vue中使用Viser说明(基于AntV-G2可视化引擎)
Oct 28 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+APACHE实现用户论证的方法
2006/10/09 PHP
PHP开发api接口安全验证操作实例详解
2020/03/26 PHP
JavaScript Accessor实现说明
2010/12/06 Javascript
Knockoutjs的环境搭建教程
2012/11/26 Javascript
Jquery判断$(&quot;#id&quot;)获取的对象是否存在的方法
2013/09/25 Javascript
js通过八个点 拖动改变div大小的实现方法
2014/03/05 Javascript
纯js代码实现未知宽高的元素在指定元素中垂直水平居中显示
2015/09/12 Javascript
Javascript编程中几种继承方式比较分析
2015/11/28 Javascript
JS功能代码集锦
2016/05/04 Javascript
JavaScript 随机验证码的生成实例代码
2016/09/22 Javascript
jQuery获取this当前对象子元素对象的方法
2016/11/29 Javascript
使用jQuery实现动态添加小广告
2017/07/11 jQuery
关于前后端json数据的发送与接收详解
2017/07/30 Javascript
AngularJS中下拉框的高级用法示例
2017/10/11 Javascript
Vue-cli中为单独页面设置背景色的实现方法
2018/02/11 Javascript
JS使用正则表达式获取小括号、中括号及花括号内容的方法示例
2018/06/01 Javascript
webpack+vue-cil中proxyTable处理跨域的方法
2018/07/20 Javascript
详解angular2.x创建项目入门指令
2018/10/11 Javascript
浅谈vue.watch的触发条件是什么
2020/11/07 Javascript
[58:35]OG vs EG 2019国际邀请赛淘汰赛 胜者组 BO3 第二场 8.22
2019/09/05 DOTA
Python isinstance函数介绍
2015/04/14 Python
Python处理PDF及生成多层PDF实例代码
2017/04/24 Python
Python使用PyCrypto实现AES加密功能示例
2017/05/22 Python
浅谈Python 的枚举 Enum
2017/06/12 Python
Python numpy实现数组合并实例(vstack,hstack)
2018/01/09 Python
Python+Turtle动态绘制一棵树实例分享
2018/01/16 Python
Pandas DataFrame数据的更改、插入新增的列和行的方法
2019/06/25 Python
Python split() 函数拆分字符串将字符串转化为列的方法
2019/07/16 Python
HTML5 audio标签使用js进行播放控制实例
2015/04/24 HTML / CSS
Fanatics英国官网:美国体育电商
2018/11/06 全球购物
亿阳信通股份有限公司C#笔试题
2016/12/06 面试题
经典公益广告词
2014/03/13 职场文书
2014年大学生预备党员思想汇报1000字
2014/09/13 职场文书
幼儿园教师岗位职责
2015/04/02 职场文书
MySQL Shell import_table数据导入的实现
2021/08/07 MySQL
Docker与K8s关系介绍不会Docker也可以使用K8s
2022/06/25 Servers