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 相关文章推荐
ext监听事件方法[初级篇]
Apr 27 Javascript
JavaScript 继承详解(四)
Jul 13 Javascript
JavaScript中实现块作用域的方法
Apr 01 Javascript
javascript中encodeURI和decodeURI方法使用介绍
May 06 Javascript
你必须知道的JavaScript 中字符串连接的性能的一些问题
May 07 Javascript
jcrop基本参数一览
Jul 16 Javascript
js使用ajax读博客rss示例
May 06 Javascript
bootstrapfileinput实现文件自动上传
Nov 08 Javascript
详解Vue中使用v-for语句抛出错误的解决方案
May 04 Javascript
详解angularjs的数组传参方式的简单实现
Jul 28 Javascript
vue数字类型过滤器的示例代码
Sep 07 Javascript
手把手教你实现 Promise的使用方法
Sep 02 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
php递归法读取目录及文件的方法
2015/01/30 PHP
js创建对象的几种常用方式小结(推荐)
2010/10/24 Javascript
用RadioButten或CheckBox实现div的显示与隐藏
2013/09/21 Javascript
jquery操作select方法汇总
2015/02/05 Javascript
微信公众平台开发教程(六)获取个性二维码的实例
2016/12/02 Javascript
canvas实现图像截取功能
2017/02/06 Javascript
JavaScript中object和Object的区别(详解)
2017/02/27 Javascript
jQuery Dom元素操作技巧
2018/02/04 jQuery
Vuejs 2.0 子组件访问/调用父组件的方法(示例代码)
2018/02/08 Javascript
javascrit中undefined和null的区别详解
2019/04/07 Javascript
vue router 用户登陆功能的实例代码
2019/04/24 Javascript
Vue 中 a标签上href无法跳转的解决方式
2019/11/12 Javascript
Vue.js 实现地址管理页面思路详解(地址添加、编辑、删除和设置默认地址)
2019/12/11 Javascript
解决pycharm双击但是无法打开的情况
2020/10/31 Javascript
[01:19:54]DOTA2上海特级锦标赛主赛事日 - 2 败者组第二轮#1Alliance VS EHOME
2016/03/03 DOTA
Python同时向控制台和文件输出日志logging的方法
2015/05/26 Python
恢复百度云盘本地误删的文件脚本(简单方法)
2017/10/21 Python
解决Python安装后pip不能用的问题
2018/06/12 Python
python通过配置文件共享全局变量的实例
2019/01/11 Python
Python之修改图片像素值的方法
2019/07/03 Python
通过python改变图片特定区域的颜色详解
2019/07/15 Python
Django密码存储策略分析
2020/01/09 Python
Nginx+Uwsgi+Django 项目部署到服务器的思路详解
2020/05/08 Python
keras实现VGG16方式(预测一张图片)
2020/07/07 Python
Python如何批量生成和调用变量
2020/11/21 Python
免费获得微软MCSD证书赶快行动吧!
2012/11/13 HTML / CSS
环法自行车赛官方商店:Le Tour de France
2017/08/27 全球购物
清洁工表扬信
2014/01/08 职场文书
元宵节晚会主持人串词
2014/03/25 职场文书
个人工作表现评语
2014/04/30 职场文书
励志演讲稿大全
2014/08/21 职场文书
四查四看自我剖析材料
2014/09/19 职场文书
党员教师个人对照检查材料(群众路线)
2014/09/26 职场文书
2015小学新教师个人工作总结
2015/10/14 职场文书
Python爬虫之爬取某文库文档数据
2021/04/21 Python
详解gantt甘特图可拖拽、编辑(vue、react都可用 highcharts)
2021/11/27 Vue.js