layui table 为单元格添加悬浮显示按钮功能

为layui table的单元格添加悬浮显示按钮的功能。因为单元格空间有限,悬浮显示的按钮可能因为单元格的overflow:hidden而显示不完整。因此建议绑定在td[data-field=‘’]元素。
但是要求按钮是具有单元格信息的。因此使用data属性,实现td[data-field=‘’]元素中,信息的传递。

在这里插入图片描述

    done: function(res) {
                //客户名称 → 筛选+复制
                $('td[data-field="nickname"]')
                    .append(`<div class='filter_btns'><button class='filter_btn layui-btn layui-btn-primary layui-btn-xs' style='display:none'>筛选</button>
                <button class='layui-btn layui-btn-primary layui-btn-xs copy_btn' style='display:none' data-clipboard-action="copy">复制</button></div>`)
                    .css({
                        position: 'relative'
                    })

                $('td[data-field="nickname"]').on("mouseenter", function() {
                    $(this).find('.filter_btns button').css('display', 'block')

                    $(this).find('.filter_btn').data('content', $(this).data('content'))
                    $(this).find('.copy_btn').data('name', $(this).data('content'))

                })

                //订单号 erp订单号 来源标识 → 复制
                $('td[data-field="order_sn"],td[data-field="erp_no"],td[data-field="order_sn_tag"]')
                    .append(`<div class='filter_btns'>
            <button class='layui-btn layui-btn-primary layui-btn-xs copy_btn' style='display:none' data-clipboard-action="copy">复制</button></div>`)
                    .css({
                        position: 'relative'
                    })

                $('td[data-field="order_sn"],td[data-field="erp_no"],td[data-field="order_sn_tag"]').on("mouseenter", function() {
                    $(this).find('.filter_btns button').css('display', 'block')
                    $(this).find('.copy_btn').data('name', $(this).find('.layui-table-cell').text())
                })

                //复制
                var clipboard = new ClipboardJS(document.getElementsByClassName('copy_btn'), {
                    text: function(trigger) {
                        return $(trigger).data('name')
                    }
                });
                clipboard.on('success', function(e) {
                    // layer.msg("复制成功!")
                    log('ok')
                });
                clipboard.on('error', function(e) {
                    layer.msg("对不起,您的浏览器暂不支持一键复制功能!")
                });
                //物流信息 → 创建+复制

                $('.copy_btn').click(function(e) {
                    e.preventDefault()
                    e.stopPropagation()
                })
                $('.filter_btn').click(function(e) {
                    e.preventDefault()
                    e.stopPropagation()
                    var text = $(this).data('content')
                    $('#filter_keyword').val(text)
                    getData(order_type, 'desc', 2, text)

                })
            }
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
layui table是一款基于layui框架的数据表格插件,可以实现表格分页、排序、过滤等功能,而且还支持合并单元格。 合并单元格主要是指在表格中合并相邻的单元格,将它们合并成一个单元格,从而可以显示更加复杂的数据。 在layui table中,合并单元格有两种方式实现: 第一种方式是通过设置colspan和rowspan属性来合并单元格。具体使用方法如下: table.render({ elem: '#test', cols: [[ //表头 {field: 'id', title: 'ID', width: 80}, {field: 'username', title: '用户名', width: 120}, {field: 'sex', title: '性别', width: 80}, {field: 'city', title: '城市', width: 100}, {field: 'sign', title: '签名', width: 200}, {field: 'experience', title: '积分', width: 100}, {field: 'score', title: '评分', width: 100}, {field: 'classify', title: '职业', width: 100}, {field: 'wealth', title: '财富', width: 100} ]], data: [], done: function(res, curr, count){ //合并单元格 var index = 0; var data = res.data; for(var i=0;i<data.length;i++){ layui.$('#test tr:eq('+index+') td:eq(0)').attr('rowspan', 2); layui.$('#test tr:eq('+index+') td:eq(1)').attr('rowspan', 2); layui.$('#test tr:eq('+index+') td:eq(2)').attr('rowspan', 2); index += 2; } } }); 第二种方式是通过设置lay-id属性来合并单元格。具体使用方法如下: table.render({ elem: '#test', url: '/demo/table/user/', method: 'get', cols: [[ {field:'id', title:'ID', width:80, sort:true, fixed: 'left'} ,{field:'username', title:'用户名', width:120} ,{field:'sex', title:'性别', width:80, sort:true} ,{field:'city', title:'城市', width:100} ,{field:'sign', title:'签名', width:200} ,{field:'experience', title:'积分', width:100, sort:true} ,{field:'score', title:'评分', width:100, sort:true} ,{field:'classify', title:'职业', width:100} ,{field:'wealth', title:'财富', width:135, sort:true, fixed: 'right'} ]], id: 'test', page: true, limit: 10, height: 'full-200', done:function(res, curr, count){ //合并单元格 var data = res.data; var mergeList = ['username','city','classify']; for(var i=0;i<mergeList.length;i++){ var mergeArray = []; var mergeCount = 1; for(var j=0;j<data.length;j++){ if(j==data.length-1){ mergeArray.push(mergeCount); }else{ if(data[j][mergeList[i]]==data[j+1][mergeList[i]]){ mergeCount++; }else{ mergeArray.push(mergeCount); mergeCount = 1; } } } var id = '#' + layui.table.config.id; layui.$(id + ' tbody tr').each(function(rowIndex){ var td = layui.$(this).find('td[data-field='+mergeList[i]+']'); for(var k = 0;k<td.length;k++){ if(mergeArray[rowIndex] && mergeArray[rowIndex]>1){ layui.$(td[k]).attr('rowspan', mergeArray[rowIndex]); mergeArray[rowIndex]--; } } }) } } }); 以上是两种实现layui table合并单元格的方法,具体根据实际需求而定。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值