我有代码,它不会在第一次点击时工作,但在第二次点击时它正在工作。
$("#btnCopiar").on("click",function(){
var clipBoardObj = new ZeroClipboard($("#btnCopiar"), {
moviePath: "../thirdparty/ZeroClipboard.swf"
});;
// Create your data here to copy to the clipboard and assign to a variable name data
var data = "DATA IS COMING FROM SERVER OT TEXT INPUT";
clipBoardObj.on("copy", function (event) {
var clipboard = event.clipboardData;
clipboard.setData( "text/plain", data );
});
});
<button id="btnCopiar">Copiar</button>
即使我在click事件之外初始化了剪贴板,它也无法正常工作
答案 0 :(得分:0)
我想知道这是否与您编写代码的同步方式有关。
您的行var data = ...
表示变量data
正在从服务器调用接收其信息,该信息仅在此时发生。 (我对你删除的代码做了一些假设,以使问题更加简洁和易懂,尽管我可能错了。)这些数据需要一段时间到了。但是,在该行之后,您正在使用data
函数中的clipBoardObj.on("copy", function(event) {...
变量。第一次运行该功能时,data
尚未到达。但是,在用户第二次单击按钮之前会经过一段时间。当发生这种情况时,第一次调用服务器可能已经有足够的时间返回,data
将有一些数据。但请注意,第二次运行该功能时,它只会使用第一次调用服务器中的data
,这可能是也可能是不可接受的。