最近有用到复制的这个功能,选用jQuery的插件,正常使用的时候,没有任何问题:
$('#copy_mobile_watch_address').zclip({
path: '/dist/plugin/zclip/ZeroClipboard.swf',
copy: function(){//复制内容
return $('#copy_push_address_val').val();
},
afterCopy: function(){//复制成功
$.artAlert('copy_mobile_watch_address','复制成功');
}
});
但是如果父级容器display:none,的时候是点击不到复制的功能,但是对
$('#copy_mobile_watch_address').click(alert(222));却是能起作用的,不知道问题出在何方????苦恼啊,感谢动云同事彪哥,帮我发现问题是display:none 的时候,
.swf文件是渲染不到隐藏的区域的,找到问题,也就针对的去网上搜索,看到 这位大哥的源码,才知道是源码里做了
if (o.is(':visible') && (typeof settings.copy == 'string' || $.isFunction(settings.copy)))的判断,但是他给出的解决方案我试了,没有乱用,开启google,用我的三脚猫英文,结果也没有很好的解决方法。混了一圈还得靠自己。哈哈哈,扯了那么多蛋,现在告诉你方法。
css 隐藏有2种方法:1.display:none; 2.visibility: hidden;。差别我相信大家都知道,一个是删除dom节点,一个是保留,只是隐藏。将display 替换成visibility 就大功告成。嘿嘿,简单吧。希望能帮助到和我一样掉坑里的人吧。