星空2020 2023-08-08 21:19 采纳率: 64.1%
浏览 70
已结题

layui table如何实现点击单元格内容自动复制?或选中即复制?

layui table点击单元格复制单元格里的内容,目前加clipboard.min.js也未实现。


```html
<script src="../js/clipboard.min.js" charset="utf-8"></script>
<script src="../layui-soul-table-master/layui/layui.js"></script>
<script>
 layui.config({
    base: '../layui-soul-table-master/ext/',   // 模块目录
    version: 'v1.8.0'
  }).extend({             // 模块别名
    soulTable: 'soulTable',
    shortcut: 'shortcut',
    tableChild: 'tableChild',
    tableMerge: 'tableMerge',
    tableFilter: 'tableFilter',
    excel: 'excel'
  });
     layui.use(['jquery','form', 'table','soulTable','tableFilter'], function () {
      var table = layui.table,
      soulTable = layui.soulTable,
      tableFilter = layui.tableFilter;

    table.render({
        elem: '#myTable2'
        ,url: './data.php' //数据接口
        ,height: getContainerHtwo('#two')-12
        ,page: false
        ,cellMinWidth: 80
        ,cols: [[
            {field: 'id', title: 'ID',sort: true}
            ,{field: 'name', title: 'SN',sort: true, filter: true, templet:function (d) {
                    return '<a href="javascript:;" data-clipboard-text="" class="font-primary" title="点击复制" lay-event="copyname">'+d.name+'</a>';
      }, unresize: true, align: 'center'}
                
            ]]
        ,done: function (res,count) {
            soulTable.render(this)
        }
        ,filter: {
           bottom: false 
        }
    });
    //清空筛选
    $('#clear').click(function (obj) {    
      //if (obj.event === 'clearFilter') {
        // 清除所有筛选条件并重载表格
        // 参数: tableId
        soulTable.clearFilter('myTable2')
      //}
    });
   
    /* 表格工具条点击事件 */
    table.on('tool(myTable2)', function (obj) {
        var data = obj.data;
        var layEvent = obj.event;
        if (layEvent === 'copyname') {
                  $(".font-primary").attr("data-clipboard-text",data.name);
                  var clipboard = new ClipboardJS('.font-primary');
                  clipboard.on('success', function(e) {
                      alert('复制成功');
                      clipboard.destroy();  //解决多次弹窗
                      e.clearSelection();
                  });
         }
    });


```

  • 写回答

3条回答 默认 最新

  • 家有娇妻张兔兔 Java领域优质创作者 2023-08-09 10:03
    关注

    别直接在表格工具条上加data-clipboard-text 属性 你这样所有.font-primary 的类都会选中,而不是当前选中的单元格
    把它改成这样

    return '<a href="javascript:;" data-clipboard-text="'+d.name+'" class="font-primary" title="点击复制" lay-event="copyname">'+d.name+'</a>';
    

    最下面的 /* 表格工具条点击事件 */里边的判断条件改成这样

     var target = obj.tr.find('.font-primary')[0];
     var clipboard = new ClipboardJS(target);
    

    其他的不用变

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 8月21日
  • 已采纳回答 8月13日
  • 创建了问题 8月8日

悬赏问题

  • ¥200 csgo2的viewmatrix值是否还有别的获取方式
  • ¥15 Stable Diffusion,用Ebsynth utility在视频选帧图重绘,第一步报错,蒙版和帧图没法生成,怎么处理啊
  • ¥15 请把下列每一行代码完整地读懂并注释出来
  • ¥15 pycharm运行main文件,显示没有conda环境
  • ¥15 易优eyoucms关于二级栏目调用的问题
  • ¥15 寻找公式识别开发,自动识别整页文档、图像公式的软件
  • ¥15 为什么eclipse不能再下载了?
  • ¥15 编辑cmake lists 明明写了project项目名,但是还是报错怎么回事
  • ¥15 关于#计算机视觉#的问题:求一份高质量桥梁多病害数据集
  • ¥15 特定网页无法访问,已排除网页问题