概述:项目中遇到复制的需求,复制成功后弹出tost提示

clipboard官网地址:http://www.clipboardjs.cn/

遇到的问题:使用clipboard.on('success')的时候, 第一次复制时没有走到success的方法里去,第二次才会走success方法,所以点两次才会弹出toast

ps: 通篇写法为react写法。

初始写法:

npm install clipboard --save

import ClipboardJs from 'clipboard';

const handleCopyClick = (event) => {

  const clipboard = new ClipboardJs('.copy');

  clipboard.on('success', () => {

    Message.success('复制成功');

    clipboard.destroy(); 

  })

}

<span className="copy" data-clipboard-text="复制id" onClick={handleCopyClick}>

  <Icon type="copy" />

</span>

改良后写法:

把clipboard抽出去,写成一个单独的js文件

import clipboard from './clipboard.js';

const handleCopyClick = (id, event) => {

  clipboard(id, event);

}

<span onClick={(event) => handleCopyClick(id, event)}>

  <Icon type="copy" />

</span>

clipboard.js文件:

import ClipboardJs from 'clipboard';

export default function handleClipboard(text, event) {

  const clipboard = new Clipboard(event.target, {

    text: () => text;

  });

  clipboard.on('success', () => {

    Message.success('复制成功');

    clipboard.destroy();

  });

  clipboard.on('error', () => {

    clipboard.destroy();

  });

  clipboard.onClick(event); // 解决!!

}

clipboard.on第一次监听失效,第二次成功!!!的更多相关文章

  1. 20、解决Vue使用bus兄弟组件间传值,第一次监听不到数据

    1.新建bus.js文件: import Vue from 'vue' export default new Vue; 2.在需要通信组件A,B中引入bus: A组件: import Bus from ...

  2. 怎样监听HTTP请求的成功、失败与进行时

    1. 监听请求成功: xhr.onload 2. 监听请求失败: xhr.onerror 3. 监听请求数据下载中: xhr.onprogress xhr.onload = function() { ...

  3. 谈谈数据监听observable的实现

    一.概述 数据监听实现上就是当数据变化时会通知我们的监听器去更新所有的订阅处理,如: var vm = new Observer({a:{b:{x:1,y:2}}}); vm.watch('a.b.x ...

  4. 玩转Android---事件监听篇---第2篇

    事件监听篇---第二篇 下面是各种常用控件的事件监听的使用 ①EditText(编辑框)的事件监听---OnKeyListener ②RadioGroup.RadioButton(单选按钮)的事件监听 ...

  5. Android必知必会-Fragment监听返回键事件

    如果移动端访问不佳,请尝试 Github版<–点击左侧 背景 项目要求用户注册成功后进入修改个人资料的页面,且不允许返回到上一个页面,资料修改完成后结束当前页面,进入APP主页. 由于是使用多个 ...

  6. Android修行之路------List view无法获取监听方法

    注意: 1.在list view自定义布局中如果添加滚动布局,会导致自定义布局无法获取监听. 2.如果ListView的每项布局里有像Button,ImageButton之类View的控键时,这些Vi ...

  7. Java实现系统目录实时监听更新。

    SDK1.7新增的nio WatchService能完美解决这个问题.美中不足是如果部署在window系统下会出现莫名其妙的文件夹占用异常导致子目录监听失效,linux下则完美运行.这个问题着实让人头 ...

  8. 20180530利用Maxwell组件实时监听Mysql的binlog日志

    转自:https://blog.csdn.net/qq_30921461/article/details/78320750 http://kafka.apache.org/quickstart htt ...

  9. Oracle 本地创建多个实例并创建多个监听(只能在服务端弄,不可在客户端)

    注意:监听必须在客户端创建,在客户端创建,会报错. 1.创建监听 通过 Net Configuration Assistant  创建监听,设置端口: 注意:此监听创建完后,服务列表里面并没有此服务的 ...

  10. JavaScript之屏幕上下左右滑动监听

    前言 存在这么一个需求,根据用户在屏幕不同的滑动方向(上.下.左.右),使用js脚本判断出不同的滑动行为,更新网页为不同的界面. 源码 参考了博文[1]的源码,但由于存在一些漏洞,比如:上下滑动事件监 ...

随机推荐

  1. # ** Warning: (vsim-3534) [FOFIR] - Failed to open file "../matlab/rom_mult_4bit.mif" for reading.

    1. 现象如下所示: 2. 分析原因: 使用Modelsim仿真时,找不到"rom_mult_4bit.mif"文件.在Quartus中,调用ROM_IP核,生成的.v文件使用的是 ...

  2. ios oc单例宏定义

    转载请注明出处!!! #undef AS_SINGLETON #define AS_SINGLETON( __class ) \ - (__class *)sharedInstance; \ + (_ ...

  3. cnetos7配置dhcp服务

    1.查询是否安装了dhcp rpm -qa dhcp 2.yum install -y dhcp (本地源) 3.cat /usr/share/doc/dhcp-4.2.5/dhcpd.conf.ex ...

  4. 技术圈的“绯闻女孩”:Gossip是如何把八卦秘密传遍全网的?

    Gossip协议,中文可译为"流言蜚语""闲话"或"八卦",形象地描述了该协议的工作方式--类似于人类社会中的信息传播模式.Gossip协议 ...

  5. Chormium 密码管理器表单结构体说明(基于Chromium138)

    这个结构体(struct PasswordForm)是 Chromium 浏览器(以及所有基于 Chromium 的浏览器,例如 Chrome.Edge 等)中密码管理器用来存储和管理单个登录凭证(即 ...

  6. Synchronized实现原理,你知道多少?

    1.synchronized的作用是什么 synchronized也叫作同步锁,解决的是多个线程之间对资源的访问一致性.换句话说,就是保证在同一时刻,被synchronized修饰的方法或代码块只有一 ...

  7. spring之maven版本

    之前讲述的spring5是基于jar的(博客地址https://www.cnblogs.com/zys2019/p/11428105.html),下载起来很麻烦,这里以同步的maven版本,技术在此略 ...

  8. JAVA游戏源码:仙剑|大学生练手项目

    学习java朋友们,福利来了,今天小编给大家带来了一款仙剑源码.注意:此源码仅供学习使用!! 并不是实现完整的仙剑游戏,仅供java开发者学习的代码!!! 演示视频地址 https://githubs ...

  9. JavaScript 对作用域、作用域链的理解?

    全局作用域: ● 最外层函数和最外层函数外面定义的变量拥有全局作用域: ● 所有未定义直接赋值的变量自动声明为全局作用域: ● 所有window对象的属性拥有全局作用域: ● 全局作用域有很大的弊端, ...

  10. Debug版有什么优势?

    Debug版有什么优势?答:方便定位错误,下面举例说明.一,新建一个基于对话框的工程DebugDlg.二,增加一个编辑框,ID为IDC_EDIT1.三,增加一个按钮,ID为IDC_BUTTON1,标题 ...