解决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 实现的全选和反选
Apr 15 Javascript
ASP.NET jQuery 实例3 (在TextBox里面阻止复制、剪切和粘贴事件)
Jan 13 Javascript
JS显示下拉列表框内全部元素的方法
Mar 31 Javascript
JavaScript jquery及AJAX小结
Jan 24 Javascript
javascript动画系列之模拟滚动条
Dec 13 Javascript
jQuery插件FusionWidgets实现的AngularGauge图效果示例【附demo源码】
Mar 23 jQuery
Bootstrap滚动监听组件scrollspy.js使用方法详解
Jul 20 Javascript
浅谈对Angular中的生命周期钩子的理解
Jul 31 Javascript
Vue框架里使用Swiper的方法示例
Sep 20 Javascript
JavaScript函数式编程(Functional Programming)箭头函数(Arrow functions)用法分析
May 22 Javascript
通过实例了解Javascript柯里化流程
Mar 03 Javascript
JavaScript实现浏览器网页自动滚动并点击的示例代码
Dec 05 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
如何分别全角和半角以避免乱码
2006/10/09 PHP
用PHP读取超大文件的实例代码
2012/04/01 PHP
php+html5+ajax实现上传图片的方法
2016/05/14 PHP
php array_keys 返回数组的键名
2016/10/25 PHP
PHP isset()与empty()的使用区别详解
2017/02/10 PHP
php+webSoket实现聊天室示例代码(附源码)
2017/02/17 PHP
PHP中rename()函数的妙用讲解
2019/02/28 PHP
一款jquery特效编写的大度宽屏焦点图切换特效的实例代码
2013/08/05 Javascript
JS中操作JSON总结
2020/12/06 Javascript
Javascript中Array.prototype.map()详解
2014/10/22 Javascript
angularjs客户端实现压缩图片文件并上传实例
2015/07/06 Javascript
VUE开发一个图片轮播的组件示例代码
2017/03/06 Javascript
JavaScript实现的可变动态数字键盘控件方式实例代码
2017/07/15 Javascript
Angular实现的进度条功能示例
2018/02/18 Javascript
js canvas实现红包照片效果
2018/08/21 Javascript
vuejs点击class变化的实例
2018/09/05 Javascript
mpvue+vant app搭建微信小程序的方法步骤
2019/02/11 Javascript
基于javascript处理二进制图片流过程详解
2020/06/08 Javascript
在vue中实现echarts随窗体变化
2020/07/27 Javascript
解决element-ui里的下拉多选框 el-select 时,默认值不可删除问题
2020/08/14 Javascript
openlayers实现地图测距测面
2020/09/25 Javascript
Vue实现随机验证码功能
2020/12/29 Vue.js
浅谈python中scipy.misc.logsumexp函数的运用场景
2016/06/23 Python
Python实现对百度云的文件上传(实例讲解)
2017/10/21 Python
用于业余项目的8个优秀Python库
2018/09/21 Python
django数据模型(Model)的字段类型解析
2019/12/25 Python
Python流程控制常用工具详解
2020/02/24 Python
英国殿堂级有机护肤品牌:Rodial
2017/04/17 全球购物
终端业务员岗位职责
2013/11/27 职场文书
财务学生的职业生涯发展
2014/02/11 职场文书
护士个人自我鉴定
2014/03/24 职场文书
名人演讲稿范文
2014/09/16 职场文书
无财产离婚协议书范本
2014/10/28 职场文书
破坏寝室公物检讨书
2014/11/17 职场文书
违规违纪检讨书范文
2015/05/06 职场文书
大学生村官工作心得体会
2016/01/23 职场文书