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 相关文章推荐
javaScript - 如何引入js代码
Mar 09 Javascript
不懂JavaScript应该怎样学
Apr 16 Javascript
event对象的方法 兼容多浏览器
Jun 27 Javascript
JavaScript中Object和Function的关系小结
Sep 26 Javascript
JavaScript中的16进制字符(改进)
Nov 21 Javascript
jQuery使用数组编写图片无缝向左滚动
Dec 11 Javascript
jquery实现滑动特效代码
Aug 10 Javascript
jQuery插件ImgAreaSelect实现头像上传预览和裁剪功能实例讲解一
May 26 jQuery
vue.js中过滤器的使用教程
Jun 08 Javascript
vue 项目 iOS WKWebView 加载
Apr 17 Javascript
微信小程序开发常见问题及解决方案
Jul 11 Javascript
JavaScript实现简单拖拽效果
Sep 15 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
天津市收音机工业发展史
2021/03/04 无线电
深入PHP获取随机数字和字母的方法详解
2013/06/06 PHP
thinkPHP导出csv文件及用表格输出excel的方法
2015/12/30 PHP
PHP基于PDO调用sqlserver存储过程通用方法【基于Yii框架】
2017/10/07 PHP
JS俄罗斯方块,包含完整的设计理念
2010/12/11 Javascript
Bootstrap企业网站实战项目4
2016/10/14 Javascript
实例解析jQuery工具函数
2016/12/01 Javascript
JS实现预加载视频音频/视频获取截图(返回canvas截图)
2017/10/09 Javascript
基于vue实现web端超大数据量表格的卡顿解决
2019/04/02 Javascript
简单说说如何使用vue-router插件的方法
2019/04/08 Javascript
监控Nodejs的性能实例代码
2019/07/02 NodeJs
js判断一个对象是数组(函数)的方法实例
2019/12/19 Javascript
vuejs中父子组件之间通信方法实例详解
2020/01/17 Javascript
NodeJS模块Buffer原理及使用方法解析
2020/11/11 NodeJs
让python的Cookie.py模块支持冒号做key的方法
2010/12/28 Python
python读写ini文件示例(python读写文件)
2014/03/25 Python
Python 实现「食行生鲜」签到领积分功能
2018/09/26 Python
python 常见字符串与函数的用法详解
2018/11/23 Python
Ubuntu18.04中Python2.7与Python3.6环境切换
2019/06/14 Python
python PyAutoGUI 模拟鼠标键盘操作和截屏功能
2019/08/04 Python
python线程中的同步问题及解决方法
2019/08/29 Python
详解python tkinter模块安装过程
2020/01/06 Python
使用Python和百度语音识别生成视频字幕的实现
2020/04/09 Python
python能在浏览器能运行吗
2020/06/17 Python
Nike西班牙官方网站:Nike.com (ES)
2017/10/30 全球购物
设计师珠宝:Ylang 23
2018/05/11 全球购物
查询优化的一般准则有哪些
2015/03/08 面试题
如何通过 CSS 写出火焰效果
2021/03/24 HTML / CSS
药品业务员岗位职责
2014/04/17 职场文书
小学生综合素质评语
2014/04/23 职场文书
运动会广播稿诗歌版
2014/09/12 职场文书
场地使用证明模板
2014/10/25 职场文书
法定授权委托证明书
2015/06/18 职场文书
创业计划书之旅游网站
2019/09/06 职场文书
Python IO文件管理的具体使用
2022/03/20 Python
Mybatis 一级缓存和二级缓存原理区别
2022/09/23 Java/Android