ZeroClipboard.js需要点击两次才复制成功的问题?

weifei_tlp 2013-08-13 01:50:21
从网上找了一个用ZeroClipboard的例子,在服务器上远程访问,可以使用,代码如下:
<script type="text/javascript" src='http://code.jquery.com/jquery.js'></script>
<script type="text/javascript" src="ZeroClipboard.js"></script>
<script>
$(function(){

//选中代码
$('.txt_code').click(function(){
$(this).select();
});

//设置swf路径
ZeroClipboard.setMoviePath("ZeroClipboard.swf");
//创建对象
var clip = new ZeroClipboard.Client();
//设置手型
clip.setHandCursor(true);
//绑定按钮
clip.glue('btn_copy');
//复制内容
clip.addEventListener( "mouseOver", function(client) {
client.setText($('.txt_code').val());
});
//复制成功后的提示
clip.addEventListener( "complete", function(){
alert("copyed successful");
});

});
</script>
<textarea class='txt_code'>sssssssssss</textarea>
<input type='button' value='copy' id='btn_copy' />

因为要用在一个页面有多个需要复制的地方,于是就把上述代码改了下,封装成一个函数。代码如下:
<script type="text/javascript" src='http://code.jquery.com/jquery.js'></script>
<script type="text/javascript" src="ZeroClipboard.js"></script>
<script>
function fcopy(){

// //选中代码
// $('.txt_code').click(function(){
// $(this).select();
// });

//设置swf路径
ZeroClipboard.setMoviePath("ZeroClipboard.swf");
//创建对象
var clip = new ZeroClipboard.Client();
//设置手型
clip.setHandCursor(true);
//绑定按钮
clip.glue('btn_copy');
//复制内容
clip.addEventListener( "mouseOver", function(client) {
client.setText($('.txt_code').val());
});
//复制成功后的提示
clip.addEventListener( "complete", function(){
alert("copyed successful");
});

}

</script>

<textarea class='txt_code'>sssssssssss</textarea>
<input type='button' onclick="fcopy()" value='copy' id='btn_copy' />

这时候再运行,发现初次复制成功需要点击两次才可以,后面的一次点击就可以了。
谁知道这个怎么解决?又是因为什么原因呢?
...全文
547 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
kookob 2014-05-01
  • 打赏
  • 举报
回复
引用 3 楼 showbo 的回复:
因为第一次点击执行了fcopy()后才绑定了zeroclipboard,所有只有下一次点击才会执行复制 反正你用的jquery,还不如直接用jquery的插件jquery.zclip.js jquery剪贴板插件
这个使用的也是ZeroClipboard,也会有同样的问题
weifei_tlp 2013-08-13
  • 打赏
  • 举报
回复
引用 3 楼 showbo 的回复:
因为第一次点击执行了fcopy()后才绑定了zeroclipboard,所有只有下一次点击才会执行复制 反正你用的jquery,还不如直接用jquery的插件jquery.zclip.js jquery剪贴板插件
这个果然好用,谢谢showbo,也谢谢xiaofanku。
Go 旅城通票 2013-08-13
  • 打赏
  • 举报
回复
因为第一次点击执行了fcopy()后才绑定了zeroclipboard,所有只有下一次点击才会执行复制 反正你用的jquery,还不如直接用jquery的插件jquery.zclip.js jquery剪贴板插件
weifei_tlp 2013-08-13
  • 打赏
  • 举报
回复
引用 1 楼 xiaofanku 的回复:
页面打开后,第一次点复制不成功(这时ZeroClipboard.js,jquery)加载完成了吗
应该加载完了的,你看上面的代码,我只是把以前的代码写成一个方法了。ZeroClipboard.js依然是在前面加载的。
街头小贩 2013-08-13
  • 打赏
  • 举报
回复
页面打开后,第一次点复制不成功(这时ZeroClipboard.js,jquery)加载完成了吗

87,907

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧