不能让"clipboard.js"工作

mar*_*arS 8 javascript clipboard clipboard.js

我无法让clipboard.js工作; 我认为这是一个简单的"误解",关于整个事情是如何运作的,因为我甚至无法得到最简单的例子,就像在这个小提琴中一样 ......

我的具体问题是让这个工作:

HTML:

<button class="copyButton" 
        id="copyButtonId" 
        data-id="@item.Type" 
        data-clipboard-action="copy" 
        data-clipboard-target="#copy_@item.Type">
</button>  
Run Code Online (Sandbox Code Playgroud)

应该复制的div是这样的:

   <div id="copy_@item.Type">
       @item.Type
       Name...: @item.Name
       Address: @item.Address
   </div>`
Run Code Online (Sandbox Code Playgroud)

JS是:

$(function() {
$(document).on("click", ".copyButton", function() {
    var clipboard = new Clipboard(".copyButton"); 
    clipboard.destroy();
  });
});
Run Code Online (Sandbox Code Playgroud)

我正在进入这个功能,但什么也没发生.我试过了:

clipboard.copy();
Run Code Online (Sandbox Code Playgroud)

但这只是让我异常......

我可以得到我要复制的文字

var id= "copy_" + $(this).attr("data-id"); var source = ($("#" + agent).html());

但我应该只能通过使用来解决这个问题clipboard.js.

我无法得到任何例子,所以如果有人给我一个完整的例子,我会很高兴.我真的试图理解,我可能会过度思考整个事情并使其变得更加复杂.我不想要任何变通方法,因为我之前使用过,认为这是一个很棒的js解决方案...如果我能理解它:)

每一个正确方向的提示都值得赞赏!

Vic*_* S. 10

确保先添加正确的库;)

<script src="https://cdn.jsdelivr.net/clipboard.js/1.5.3/clipboard.min.js"></script>

或者你当地的min.js

我已将您的代码更改为:

var clipboard = new Clipboard('.copyButton');

clipboard.on('success', function(e) {
  console.log(e);
});

clipboard.on('error', function(e) {
  console.log(e);
});
Run Code Online (Sandbox Code Playgroud)

和js:

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/clipboard.js/1.5.3/clipboard.min.js"></script>

<div id="copy">
  @item.Type
  Name...: @item.Name 
  Address: @item.Address
</div>
    
<button class="copyButton" id="copyButtonId" data-id="@item.Type"
data-clipboard-action="copy" data-clipboard-target="div#copy">Copy!</button>
Run Code Online (Sandbox Code Playgroud)

和我一起现在复制div.如果它不适合你,请告诉我.