【问题标题】:Zeroclipboard not copying on first ClickZeroclipboard 没有在第一次点击时复制
【发布时间】:2016-02-17 15:47:29
【问题描述】:

我有代码,但在第一次点击时它不起作用,但在第二次点击时它起作用了。

$("#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>

即使我在点击事件之外初始化了剪贴板,它也不起作用

【问题讨论】:

  • 在添加监听器之前确定按钮对象存在于DOM中吗?
  • YES 按钮存在于 DOM 中。

标签: javascript jquery clipboard zeroclipboard


【解决方案1】:

我想知道这是否与您编写代码的同步方式有关。

您的var data = ... 行暗示变量data 正在从仅在此时发生的服务器调用中接收其信息。 (我对您已删除的代码进行了一些假设,以使问题更简洁易懂,尽管我可能对此有误。)该数据需要一段时间才能到达.但是,紧接在该行之后,您将在 clipBoardObj.on("copy", function(event) {... 函数中使用 data 变量。第一次运行该函数时,data 还没有到达。但是,在用户第二次单击该按钮之前将经过一段时间。发生这种情况时,可能已经有足够的时间让对服务器的第一次调用返回,并且data 将有一些数据。但是请注意,第二次运行该函数时,它只会使用 first 调用服务器时的data,这可能会也可能不会接受。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多