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 相关文章推荐
实现51Map地图接口(示例代码)
Nov 22 Javascript
js正则表达式中exec用法实例
Jul 23 Javascript
详谈JS中实现种子随机数及作用
Jul 19 Javascript
Angular.js中angular-ui-router的简单实践
Jul 18 Javascript
HTML5开发Kinect体感游戏的实例应用
Sep 18 Javascript
关于axios如何全局注册浅析
Jan 14 Javascript
vue-router 源码实现前端路由的两种方式
Jul 02 Javascript
angularjs手动识别字符串中的换行符方法
Oct 02 Javascript
jQuery中实现text()的方法
Apr 04 jQuery
微信小程序获取公众号文章列表及显示文章的示例代码
Mar 10 Javascript
vue基于Teleport实现Modal组件
May 31 Vue.js
国庆节到了,利用JS实现一个生成国庆风头像的小工具 详解实现过程
Oct 05 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验证码代码
2012/02/27 PHP
php文件上传简单实现方法
2015/01/24 PHP
Zend Framework教程之请求对象的封装Zend_Controller_Request实例详解
2016/03/07 PHP
ie 处理 gif动画 的onload 事件的一个 bug
2007/04/12 Javascript
利用进制转换压缩数字函数分享
2014/01/02 Javascript
JS比较2个日期间隔的示例代码
2014/04/15 Javascript
完美兼容各大浏览器的jQuery仿新浪图文淡入淡出间歇滚动特效
2014/11/12 Javascript
jQuery中appendTo()方法用法实例
2015/01/08 Javascript
JQuery中extend的用法实例分析
2015/02/08 Javascript
一步一步封装自己的HtmlHelper组件BootstrapHelper(二)
2016/09/14 Javascript
通过BootStrap-select插件 js jQuery控制select属性变化
2017/01/03 Javascript
jQuery实现图片滑动效果
2017/03/08 Javascript
Angular中ng-bind和ng-model的区别实例详解
2017/04/10 Javascript
javascript+html5+css3自定义提示窗口
2017/06/21 Javascript
Vue.js项目部署到服务器的详细步骤
2017/07/17 Javascript
JS库 Highlightjs 添加代码行号的实现代码
2017/09/13 Javascript
[原创]jQuery实现合并/追加数组并去除重复项的方法
2018/04/11 jQuery
微信小程序自定义弹窗实现详解(可通用)
2019/07/04 Javascript
Vue.js数字输入框组件使用方法详解
2019/10/19 Javascript
[08:47]DOTA2每周TOP10 精彩击杀集锦vol.6
2014/06/25 DOTA
python中的装饰器详解
2015/04/13 Python
Python中super关键字用法实例分析
2015/05/28 Python
Python常用小技巧总结
2015/06/01 Python
Python 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)
2018/03/19 Python
对Python 文件夹遍历和文件查找的实例讲解
2018/04/26 Python
Win下PyInstaller 安装和使用教程
2019/12/25 Python
python爬虫可以爬什么
2020/06/16 Python
手机端用rem+scss做适配的详解
2017/11/15 HTML / CSS
哈利波特商店:Harry Potter Shop
2018/11/30 全球购物
毕业生个人的自我评价优秀范文
2013/10/03 职场文书
结婚周年感言
2014/02/24 职场文书
《充气雨衣》教学反思
2014/04/07 职场文书
促销活动总结怎么写
2014/06/25 职场文书
查摆问题整改措施范文
2014/10/11 职场文书
公证处委托书
2015/01/28 职场文书
2015领导干部廉洁自律工作总结
2015/07/23 职场文书