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>
</head>
<body>
<p class="intro">券号:BBBzc1234567A473D00051
<br>
<a href="javascript:;" class="hdl-copymemcode" id='BBBzc1234567A473D00051' data-code="BBBzc1234567A473D00051">复制券号</a>
<br>使用状况:还未开始或已过期
</p>
<p class="intro">券号:AAAzc1234567A473D00051
<br>
<a href="javascript:;" class="hdl-copymemcode" id='AAAzc1234567A473D00051' data-code="AAAzc1234567A473D00051">复制券号</a>
<br> 使用状况:还未开始或已过期
</p>
</body>
</html>
给你说下程序执行的流程吧:
页面初始化时, <a>
元素有onclick事件;
第一次点击, 触发onclick事件, 调用setCopyClip
函数后, 绑定一个ZeroClipboard.Client
对象;
这条是重点 : 在new ZeroClipboard.Client
时,ZeroClipboard
会创建一个div元素覆盖在元素之上;
第二次点击, 因为ZeroClipboard
创建的div在元素之上, 所以不会触发onclick事件;
第一次绑定的ZeroClipboard.Client
对象触发complete事件, 弹出复制成功!弹窗.
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。