• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

javascript – ZeroClipboard为什么点击两次才能成功呢?上全部代码

php 搞代码 4年前 (2022-01-25) 16次浏览 已收录 0个评论
文章目录[隐藏]
<code>    <meta charset="UTF-8">    <title>插件</title>    <script src='ZeroClipboard.min.js'></script>    <script>        function setCopyClip(id)         {             clip = new ZeroClipboard.Client(); //初始化对象              ZeroClipboard.setMoviePath("ZeroClipboard.swf");            clip.setHandCursor( true );   //设置手型            var oA   = document.getElementById(id);            var code = oA.getAttribute('data-code');            clip.setText(code);             clip.addEventListener('complete', function (client) {  //创建监听事件              alert('复制成功!');            });              clip.glue(id); //将flash覆盖至指定ID的DOM上          }          window.onload=function()        {            var aA = document.getElementsByTagName('a');            for (var i = 0; i < aA.length; i++)             {                aA[i].onclick=function()                {                   setCopyClip(this.id)                }            }        }           </script><body>    <p class="intro">券号:BBBzc1234567A473D00051    <br>    复制券号             <br>使用状况:还未开始或已过期                           </p>    <p class="intro">券号:AAAzc1234567A473D00051    <br>    复制券号    <br> 使用状况:还未开始或已过期                          </p></code>

回复内容:

<code>    <meta charset="UTF-8">    <title>插件</title>    <script src='ZeroClipboard.min.js'></script>    <script>        function setCopyClip(id)         {             clip = new ZeroClipboard.Client(); //初始化对象              ZeroClipboard.setMoviePath("ZeroClipboard.swf");            clip.setHandCursor( true );   //设置手型            var oA   = document.getElementById(id);            var code = oA.getAttribute('data-code');            clip.setText(code);             clip.addEventListener('complete', function (client) {  //创建监听事件              alert('复制成功!');            });     <a>2本文来源gao*daima.com搞@代#码&网6</a><pre>搞gaodaima代码

clip.glue(id); //将flash覆盖至指定ID的DOM上 } window.onload=function() { var aA = document.getElementsByTagName(‘a’); for (var i = 0; i < aA.length; i++) { aA[i].onclick=function() { setCopyClip(this.id) } } } </script><body>

券号:BBBzc1234567A473D00051
复制券号
使用状况:还未开始或已过期

券号:AAAzc1234567A473D00051
复制券号
使用状况:还未开始或已过期

给你说下程序执行的流程吧:

  1. 页面初始化时, 元素有onclick事件;
  2. 第一次点击, 触发onclick事件, 调用setCopyClip函数后, 绑定一个ZeroClipboard.Client对象;
  3. 这条是重点 : 在new ZeroClipboard.Client时, ZeroClipboard会创建一个div元素覆盖在元素之上;
  4. 第二次点击, 因为ZeroClipboard创建的div元素之上, 所以不会触发onclick事件;
  5. 第一次绑定的ZeroClipboard.Client对象触发complete事件, 弹出复制成功!弹窗.

PS:你用的ZeroClipboard版本很老的吧…


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:javascript – ZeroClipboard为什么点击两次才能成功呢?上全部代码
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址