layui.tree组件的使用以及搜索节点功能的实现


Posted in Javascript onSeptember 26, 2019

由于项目树形节点比较多需要增加节点搜索功能,所以研究了一下加上社区伙伴的支持,目前功能可以简单实现但细节还需要修改,添加上了组件的基本使用方法和属性,现在分享出来~

HTML:

<div class="layui-btn-container">
  <button class="layui-btn layui-btn-sm" type="button" lay-demo="getChecked">获取选中节点数据</button>
  <button class="layui-btn layui-btn-sm" type="button" lay-demo="setChecked">勾选指定节点</button>
  <button class="layui-btn layui-btn-sm" type="button" lay-demo="reload">重载实例</button>
</div>
<div class="demoTable">
  <div class="layui-inline">
    <input type="text" class="layui-input" id="tree_name" autocomplete="off" />
  </div>
  <button class="layui-btn" id="btn_query">搜索</button>
</div>
<div id="test1" class="demo-tree demo-tree-box"></div>

JavaScript:

layui.use(['tree', 'util'], function(){
    var $ = layui.$;
    var tree = layui.tree
        ,layer = layui.layer
        ,util = layui.util
    //模拟数据
        ,data1 = [{
          title: '江西'
          ,id: 1
          ,children: [{
            title: '南昌'
            ,id: 1000
            ,children: [{
              title: '青山湖区'
              ,id: 10001
            },{
              title: '高新区'
              ,id: 10002
            }]
          },{
            title: '九江'
            ,id: 1001
          },{
            title: '赣州'
            ,id: 1002
          }]
        },{
          title: '广西'
          ,id: 2
          ,children: [{
            title: '南宁'
            ,id: 2000
          },{
            title: '桂林'
            ,id: 2001
          }]
        },{
          title: '陕西'
          ,id: 3
          ,children: [{
            title: '西安'
            ,id: 3000
          },{
            title: '延安'
            ,id: 3001
          }]
        },{
          title: '四川(可跳转)'
          ,id: 4
          ,href: 'https://www.layui.com/'
          ,children: [{
            title: '成都'
            ,id: 3000
            ,checked: true //默认选中
          },{
            title: '雅安'
            ,id: 3001
          }]
        }];
 
    //常规用法
    tree.render({
      elem: '#test1' //默认是点击节点可进行收缩
      ,data: data1
      ,id: 'demoId1'
      ,showCheckbox: true //是否显示复选框
      ,isJump: true //是否允许点击节点时弹出新窗口跳转
      ,showLine: true //是否开启连接线
      ,edit: ['add', 'update', 'del'] //开启操作节点的图标
      ,click: function(obj){
        var data = obj.data; //获取当前点击的节点数据
        layer.msg('状态:'+ obj.state + '<br>节点数据:' + JSON.stringify(data));
      }
    });
 
    //按钮事件
    util.event('lay-demo', {
      getChecked: function(othis){
        var checkedData = tree.getChecked('demoId1'); //获取选中节点的数据
 
        layer.alert(JSON.stringify(checkedData), {shade:0});
        console.log(checkedData);
      }
      ,setChecked: function(){
        tree.setChecked('demoId1', [3, 4]); //勾选指定节点
      }
      ,reload: function(){
        //重载实例
        tree.reload('demoId1', {});
      }
    });
 
    //搜索节点值
    $('#btn_query').click(function () {
      var name = $("#tree_name").val(); //搜索值
      var elem = $("#test1").find('.layui-tree-txt').css('color', ''); //搜索文本与设置默认颜色
      if (!name) {
        return; //无搜索值返回
      }
      elem.filter(':contains(' + name + ')').css('color', '#FFB800'); //搜索文本并设置标志颜色
      elem.parents('.layui-tree-pack').prev().find('.layui-tree-iconClick').click(); //展开选项
      //console.log(elem);
    })
 
  });

效果如图:

layui.tree组件的使用以及搜索节点功能的实现

搜索功能还有待完善,希望做过类似功能的伙伴多多沟通和分享~

以上这篇layui.tree组件的使用以及搜索节点功能的实现就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
使用documentElement正确取得当前可见区域的大小
Jul 25 Javascript
javascript比较两个日期相差天数的方法
Jul 23 Javascript
flag和jq on 的绑定多个对象和方法(必看)
Feb 27 Javascript
详解AngularJS脏检查机制及$timeout的妙用
Jun 19 Javascript
一步步教你利用Canvas对图片进行处理
Sep 19 Javascript
axios简单实现小程序延时loading指示
Jul 30 Javascript
vue路由拦截器和请求拦截器知识点总结
Nov 08 Javascript
vue路由守卫,限制前端页面访问权限的例子
Nov 11 Javascript
nuxt配置通过指定IP和端口访问的实现
Jan 08 Javascript
CKEditor扩展插件:自动排版功能autoformat插件实现方法详解
Feb 06 Javascript
vue项目实现多语言切换的思路
Sep 17 Javascript
编写v-for循环的技巧汇总
Dec 01 Javascript
微信小程序点击列表跳转到对应详情页过程解析
Sep 26 #Javascript
vue+element tabs选项卡分页效果
Jun 29 #Javascript
layui实现根据table数据判断按钮显示情况的方法
Sep 26 #Javascript
vue+element表格导出为Excel文件
Sep 26 #Javascript
利用layer实现表单完美验证的方法
Sep 26 #Javascript
vue点击当前路由高亮小案例
Sep 26 #Javascript
使用layer弹窗提交表单时判断表单是否输入为空的例子
Sep 26 #Javascript
You might like
php4的session功能评述(三)
2006/10/09 PHP
背景音乐每次刷新都可以自动更换
2007/02/01 Javascript
用javascript实现的图片马赛克后显示并切换加文字功能
2007/04/21 Javascript
javascript cookie的简单应用
2016/02/24 Javascript
第七章之菜单按钮图标组件
2016/04/25 Javascript
jquery对Json的各种遍历方法总结(必看篇)
2016/09/29 Javascript
基于ajax与msmq技术的消息推送功能实现代码
2016/12/26 Javascript
给Easyui-Datebox设置隐藏或者不可用的解决方法
2017/05/26 Javascript
Node.js中 __dirname 的使用介绍
2017/06/19 Javascript
基于JS实现仿京东搜索栏随滑动透明度渐变效果
2017/07/10 Javascript
使用vue制作FullPage页面滚动效果
2017/08/21 Javascript
JS实现获取毫秒值及转换成年月日时分秒的方法
2018/08/15 Javascript
js变量声明var使用与不使用的区别详解
2019/01/21 Javascript
详解基于Wepy开发小程序插件(推荐)
2019/08/01 Javascript
Node.js 在本地生成日志文件的方法
2020/02/07 Javascript
js实现时钟定时器
2020/03/26 Javascript
vue实现tab栏点击高亮效果
2020/08/19 Javascript
[02:32]DOTA2完美大师赛场馆静安体育中心观赛全攻略
2017/11/08 DOTA
python中set()函数简介及实例解析
2018/01/09 Python
python的dataframe和matrix的互换方法
2018/04/11 Python
pandas如何处理缺失值
2019/07/31 Python
多版本python的pip 升级后, pip2 pip3 与python版本失配解决方法
2019/09/11 Python
keras topN显示,自编写代码案例
2020/07/03 Python
pandas处理csv文件的方法步骤
2020/10/16 Python
Python和Bash结合在一起的方法
2020/11/13 Python
Wilson体育用品官网:美国著名运动器材品牌
2019/05/12 全球购物
解释一下ArrayList Vector和LinkedList的实现和区别
2013/04/26 面试题
《花的勇气》教后反思
2014/02/12 职场文书
公司会计岗位职责
2014/02/13 职场文书
基层工作经验证明样本
2014/11/16 职场文书
黄石寨导游词
2015/02/05 职场文书
消费者投诉书范文
2015/07/02 职场文书
2016廉洁教育心得体会
2016/01/20 职场文书
Nginx访问日志及错误日志参数说明
2021/03/31 Servers
Oracle11g R2 安装教程完整版
2021/06/04 Oracle
深入浅析python3 依赖倒置原则(示例代码)
2021/07/09 Python