2.7K Star 15.9K Fork 3.6K

GVPLayui / layui

 / 详情

2.70版本以上,table里面配合ClipboardJS复制没反应

已完成
创建于  
2022-07-03 18:50

2.70版本及以上,table里面配合ClipboardJS复制没反应
我这边测试2.6.13还是正常的

输入图片说明
输入图片说明

评论 (7)

无名 创建了任务

从你截图中看出,你是在tool事件触发的时候去new一个ClipboardJS,那么你了解他的作用是什么吗?实际他只是给后面的传入的选择器添加一个监听,点击了可以复制你要的内容,所以,你在一个点击的事件中通过一个插件给这个节点又添加了一个事件,然后就没了,那么这样子点一次是不会有你要的效果的,这个跟版本没有关系,你说以前版本这个就很奇怪了,在你目前这个代码的情况下,点击第一次没有触发复制内容,这个时候你再点击一下试试看,应该就能明白我前面说的意思了。
https://codepen.io/sunxiaobin89/pen/abYOMJL

我是前端小白,可否直接说怎么解决,谢谢了

我回复中的测试代码中已经给出了方案,你点进去试试看是不是要的效果,然后主要看table.on(tool)中的处理,跟你自己写的对比一下看看差异,已经加了一些注释,实现的思路就是在没有经过ClipboardJS处理的时候new ClipboardJS,然后标记它已经处理过,免得下次点击又重新new ClipboardJS,处理完ClipboardJS之后等于ClipboardJS的事件已经添加到节点上了,这个时候再点击的时候就可以复制了,所以需要在里面用js触发一次点击,就可以做到第一次点击的时候先new ClipboardJS然后触发,后面每次点击,它还是会进去tool监听,只不过已经标记它处理过不需要重复处理,等于第二次以后的点击,tool不做任何事情,都交给ClipboardJS去处理了。

老版本确实使用没问题,新版本升级后确实复制失效,
我是首次进入创建了对象,复制内容是动态生成的,本着一次创建(对象),重复使用(只改变被复制的文本)的好习惯,发现升级后确实无法使用了,不知道哪里出了问题,你给出的解决方案 数据多了复制次数多了会卡顿的

感谢大佬,解决了我的问题

很明显绑定事件位置和顺序就错了,应该在表格数据渲染完后立即去循环#copy_key_n节点实例化ClipboardJS进行事件绑定,这样每个复制节点的对应实例clipboard绑定事件success、error才会立即生效。

贤心 任务状态待办的 修改为已完成

题主解决了吗?我也遇到了同样的问题,2.6.8版本可以复制,2.7.3版本就不能使用了。求如何解决,谢谢了

登录 后才可以发表评论

状态
负责人
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
参与者(6)
627027 sun zoro 1578929630 347163 lsl1618 1578920825 1533530 mtgq 1658209907
JavaScript
1
https://gitee.com/layui/layui.git
git@gitee.com:layui/layui.git
layui
layui
layui

搜索帮助