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 相关文章推荐
客户端限制只能上传jpg格式图片的js代码
Dec 09 Javascript
JQuery入门——用one()方法绑定事件处理函数(仅触发一次)
Feb 05 Javascript
js和jquery中循环的退出和继续学习记录
Sep 06 Javascript
jquery+ajax+text文本框实现智能提示完整实例
Jul 09 Javascript
使用vue实现点击按钮滑出面板的实现代码
Jan 10 Javascript
js实现弹窗暗层效果
Jan 16 Javascript
JavaScript实现256色转灰度图
Feb 22 Javascript
jQuery Json数据格式排版高亮插件json-viewer.js使用方法详解
Jun 12 jQuery
关于使用axios的一些心得技巧分享
Jul 02 Javascript
JQuery 获取多个select标签option的text内容(实例)
Sep 07 jQuery
vue-cli3脚手架的配置及使用教程
Aug 28 Javascript
Vue实现可移动水平时间轴
Jun 29 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
mysql 搜索之简单应用
2007/04/27 PHP
Symfony生成二维码的方法
2016/02/04 PHP
实例讲解php数据访问
2016/05/09 PHP
浅谈PHP中的面向对象OOP中的魔术方法
2017/06/12 PHP
PHP观察者模式原理与简单实现方法示例
2017/08/25 PHP
window.onload 加载完毕的问题及解决方案(上)
2009/07/09 Javascript
对 lightbox JS 图片控件进行了一下改造, 使其他支持复杂的图片说明
2010/03/20 Javascript
JQuery学习笔记 nt-child的使用
2011/01/17 Javascript
js获取单选框或复选框值及操作
2012/12/18 Javascript
基于vue的下拉刷新指令和滚动刷新指令
2016/12/23 Javascript
详解vue模拟加载更多功能(数据追加)
2017/06/23 Javascript
原生JS实现图片无缝滚动方法(附带封装的运动框架)
2017/10/01 Javascript
微信小程序 功能函数小结(手机号验证*、密码验证*、获取验证码*)
2017/12/08 Javascript
在vue中实现点击选择框阻止弹出层消失的方法
2018/09/15 Javascript
详解Vue中使用插槽(slot)、聚类插槽
2019/04/12 Javascript
ES6的解构赋值实例详解
2019/05/06 Javascript
[42:20]Winstrike vs VGJ.S 2018国际邀请赛淘汰赛BO3 第二场 8.23
2018/08/24 DOTA
Python守护进程(daemon)代码实例
2015/03/06 Python
Python文件去除注释的方法
2015/05/25 Python
python动态参数用法实例分析
2015/05/25 Python
python+pyqt实现12306图片验证效果
2017/10/25 Python
Python3实现的简单工资管理系统示例
2019/03/12 Python
python安装gdal的两种方法
2019/10/29 Python
Django ForeignKey与数据库的FOREIGN KEY约束详解
2020/05/20 Python
利用canvas实现图片压缩的示例代码
2018/07/17 HTML / CSS
Expedia意大利旅游网站:酒店、机票和租车预订
2017/10/30 全球购物
受希腊女神灵感的晚礼服、鸡尾酒礼服和婚纱:THEIA
2018/04/15 全球购物
如何查找和删除数据库中的重复数据
2014/11/05 面试题
应聘自荐书
2013/10/08 职场文书
小学网上祭英烈活动总结
2014/07/05 职场文书
酒店端午节活动方案
2014/08/26 职场文书
公司承诺函范文
2015/01/21 职场文书
证券区域经理岗位职责
2015/04/10 职场文书
电力企业职工培训心得体会
2016/01/11 职场文书
传单、海报早OUT了,另类传单营销方案送给你!
2019/07/15 职场文书
Python办公自动化之Excel(中)
2021/05/24 Python