解决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 源代码显示控件 (Ajax加载方式).
May 18 Javascript
javascript void(0)的妙用
Oct 21 Javascript
jQuery照片伸缩效果不影响其他元素的布局
May 09 Javascript
NODE.JS加密模块CRYPTO常用方法介绍
Jun 05 Javascript
JavaScript知识点总结(十)之this关键字
May 31 Javascript
jQuery的层级查找方式分析
Jun 16 Javascript
Bootstrap模态框(modal)垂直居中的实例代码
Aug 18 Javascript
表单元素值获取方式js及java方式的简单实例
Oct 15 Javascript
微信小程序 使用腾讯地图SDK详解及实现步骤
Feb 28 Javascript
对存在JavaScript隐式类型转换的四种情况的总结(必看篇)
Aug 31 Javascript
layer.close()关闭进度条和Iframe窗的方法
Aug 17 Javascript
基于layui的table插件进行复选框联动功能的实现方法
Sep 19 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
DC的38部超级英雄动画电影
2020/03/03 欧美动漫
树型结构列出指定目录里所有文件的PHP类
2006/10/09 PHP
PHP调用MySQL的存储过程的实现代码
2008/08/12 PHP
php微信公众平台开发类实例
2015/04/01 PHP
学习php设计模式 php实现装饰器模式(decorator)
2015/12/07 PHP
php 替换文章中的图片路径,下载图片到本地服务器的方法
2018/02/06 PHP
ext监听事件方法[初级篇]
2008/04/27 Javascript
js兼容标准的表格变色效果
2008/06/28 Javascript
JS实现商品倒计时实现代码
2013/05/03 Javascript
JavaScript实现点击按钮后变灰避免多次重复提交
2013/07/15 Javascript
js取两个数组的交集|差集|并集|补集|去重示例代码
2013/08/07 Javascript
js中function()使用方法
2013/12/24 Javascript
Javascript 绘制 sin 曲线过程附图
2014/08/21 Javascript
JavaScript学习笔记之数组的增、删、改、查
2016/03/23 Javascript
一道优雅面试题分析js中fn()和return fn()的区别
2016/07/05 Javascript
Bootstrap 下拉多选框插件Bootstrap Multiselect
2017/01/22 Javascript
JavaScript 实现 Tab 点击切换实例代码
2017/03/25 Javascript
JS获取填报扩展单元格控件的值的解决办法
2017/07/14 Javascript
浅谈JavaScript中的属性:如何遍历属性
2017/09/14 Javascript
vue 虚拟dom的patch源码分析
2018/03/01 Javascript
Vue数字输入框组件的使用方法
2019/10/19 Javascript
viewer.js一个强大的基于jQuery的图像查看插件(支持旋转、缩放)
2020/04/01 jQuery
[00:11]战神迅矛
2019/03/06 DOTA
[51:17]完美世界DOTA2联赛循环赛Inki vs DeMonsTer 第二场 10月30日
2020/10/31 DOTA
python实现的用于搜索文件并进行内容替换的类实例
2015/06/28 Python
python中nan与inf转为特定数字方法示例
2017/05/11 Python
详解查看Python解释器路径的两种方式
2020/10/15 Python
python中remove函数的踩坑记录
2021/01/04 Python
英国户外装备和冒险服装零售商:alloutdoor
2018/01/30 全球购物
巴黎欧莱雅法国官网:L’Oreal Paris
2019/04/30 全球购物
《莫高窟》教学反思
2014/02/25 职场文书
护士求职自荐信范文
2014/03/19 职场文书
学校端午节活动方案
2014/08/23 职场文书
2014年采购部工作总结
2014/11/20 职场文书
2016个人先进事迹材料范文
2016/03/01 职场文书
Python各协议下socket黏包问题原理
2022/04/12 Python