自定义Layui Tree的节点的操作图标

本文介绍了如何在Layui的tree组件中添加自定义节点操作,如弹窗查看节点信息,以及如何通过修改源码实现自定义图标和对应的事件处理。
摘要由CSDN通过智能技术生成

Layui 的 tree 组件 节点默认支持的操作如下所示:

如果有其他需求,例如弹窗查看节点的信息,或者不喜欢图标的icon怎么办呢?

这时就需要通过修改源码的方式来实现了。

打开layui.js,搜索 data-type="del"

红框内就是支持的的操作,其中info是我自己添加的,使用layui-icon-file作为显示的图标

再搜索:layui-icon-edit

找到这行代码:

l = ['<div class="layui-inline" lay-event="add"><i class="layui-icon layui-icon-add-1"></i></div>', '<div class="layui-inline" lay-event="update"><i class="layui-icon layui-icon-edit"></i></div>', '<div class="layui-inline" lay-event="delete"><i class="layui-icon layui-icon-delete"></i></div>'].join(""),

在数组内添加一项:

'<div class="layui-inline" lay-event="info"><i class="layui-icon layui-icon-tips"></i></div>'

这时候保存layui.js

打开使用tree的地方,

// 渲染章节树
layui.use('tree', function () {
    let tree = layui.tree;
    vm.pointTree = tree.render({
        elem: '#pointTree',
        data: r.data,
        onlyIconControl: true,
        edit: ['info'],
        click: function (obj) {
            // 节点被点击
        },
        operate: function (obj) {
            let point = obj.data;
            if (obj.type === "info") {
                // 自定义图标被点击的回调函数
            }
        }
    });
});

就可以愉快使用啦~

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
layui是一款轻量级的前端UI框架,其中的tree组件提供了树形结构的展示和交互功能。在tree组件中,自定义图标是一种常见的需求,它可以根据用户的具体要求来设置图标样式和数量。 在layui tree自定义图标的实现方式为,首先需要在节点数据中加入icon属性,该属性表示该节点图标的样式。如:{"id":1,"name":"节点1","icon":"layui-icon layui-icon-star"},其中的icon属性值为layui提供的图标样式类名。 当然,可以在icon属性值中加入自定义图标样式,比如:"icon":"my-icon",然后利用CSS来定义my-icon样式的图标。具体实现方式如下: .layui-tree-my .my-icon:before { content: '\e602'; font-family: "layui-icon"; font-size: 18px; font-style: normal; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; margin-right: 3px; } 其中,layui-tree-my类是tree容器的class,my-icon是我们自定义图标样式名,content属性中的'\e602'表示图标的Unicode码,可以通过查看layui的字体文件来获取相应图标的Unicode码。 最后,在tree组件的渲染时,设置自定义图标的样式,具体代码如下: var treeData = [ //节点数据,包含icon属性 ]; layui.use(['tree'], function() { var tree = layui.tree; tree.render({ elem: '#tree', data: treeData, indent: 20, icon: ['-','-'], click: function(node) { console.log(node); } }); //设置自定义图标的样式 $('.layui-tree-my .layui-tree-icon').each(function() { var icon = $(this).prev('.layui-tree-txt').find('.my-icon'); if (icon.length > 0) { $(this).empty().append(icon); } }); }); 其中,通过$('.layui-tree-my .layui-tree-icon')选择器获取所有需要设置图标节点,然后通过操作DOM将自定义图标样式添加到节点中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值