解决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 相关文章推荐
JavaScript 入门基础知识 想学习js的朋友可以参考下
Dec 26 Javascript
jQuery筛选器children()案例详解(图文)
Feb 17 Javascript
如何用JavaScript动态呼叫函数(两种方式)
May 03 Javascript
jquery实现按Enter键触发事件示例
Sep 10 Javascript
Javascript基础教程之JavaScript语法
Jan 18 Javascript
jquery实现页面关键词高亮显示的方法
Mar 12 Javascript
Javascript数组Array基础介绍
Mar 13 Javascript
vue在自定义组件中使用v-model进行数据绑定的方法
Mar 25 Javascript
小程序分享模块超级详解(推荐)
Apr 10 Javascript
vue 中 beforeRouteEnter 死循环的问题
Apr 23 Javascript
vue中使用elementUI组件手动上传图片功能
Dec 13 Javascript
小程序实现可拖动的悬浮按钮
Sep 07 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实现把url转换迅雷thunder资源下载地址的方法
2014/11/07 PHP
jQuery ready()和onload的加载耗时分析
2016/09/08 Javascript
微信小程序 基础组件与导航组件详细介绍
2017/02/21 Javascript
Vue.js使用$.ajax和vue-resource实现OAuth的注册、登录、注销和API调用
2017/05/10 Javascript
vue购物车插件编写代码
2017/11/27 Javascript
js断点调试经验分享
2017/12/08 Javascript
通过jquery获取上传文件名称、类型和大小的实现代码
2018/04/19 jQuery
微信小程序自定义可滑动日历界面
2018/12/28 Javascript
Vue 引入AMap高德地图的实现代码
2019/04/29 Javascript
layui 数据表格+分页+搜索+checkbox+缓存选中项数据的方法
2019/09/21 Javascript
微信小程序利用button控制条件标签的变量问题
2020/03/15 Javascript
[07:43]《辉夜杯》公开赛晋级外卡赛战队—TRG训练生活探秘
2015/12/11 DOTA
Python文件夹与文件的操作实现代码
2014/07/13 Python
跟老齐学Python之从格式化表达式到方法
2014/09/28 Python
PyCharm使用教程之搭建Python开发环境
2016/06/07 Python
Python连接PostgreSQL数据库的方法
2016/11/28 Python
python 文件操作删除某行的实例
2017/09/04 Python
python 实现一个贴吧图片爬虫的示例
2017/10/12 Python
基于python中staticmethod和classmethod的区别(详解)
2017/10/24 Python
Python常用字符串替换函数strip、replace及sub用法示例
2018/05/21 Python
Python用于学习重要算法的模块pygorithm实例浅析
2018/08/16 Python
django orm 通过related_name反向查询的方法
2018/12/15 Python
Django项目中添加ldap登陆认证功能的实现
2019/04/04 Python
用python打印菱形的实操方法和代码
2019/06/25 Python
将python文件打包exe独立运行程序方法详解
2020/02/12 Python
jupyter notebook中美观显示矩阵实例
2020/04/17 Python
字中字效果的实现【html5实例】
2016/05/03 HTML / CSS
英国航空官网:British Airways
2016/09/11 全球购物
电台实习生求职信
2014/02/25 职场文书
蓝颜请假条
2014/04/11 职场文书
音乐幼师求职信
2014/07/09 职场文书
2014党委书记四风问题对照检查材料思想汇报
2014/09/22 职场文书
工作骂脏话检讨书
2014/10/05 职场文书
党员检讨书范文
2014/12/27 职场文书
教师培训简讯
2015/07/20 职场文书
DjangoRestFramework 使用 simpleJWT 登陆认证完整记录
2021/06/22 Python