可以使用jQuery在点击时复制文本吗?

时间:2018-04-26 20:10:26

标签: javascript jquery javascript-events copy

我试图让jQuery在点击时复制元素的title属性,但我认为我遇到了事件冒泡的问题。

我可以用直接的JS轻松地做到这一点,但我试图了解如何使用jQuery来做到这一点。

这是我的代码:

<html>
  <head>
    <script src="https://code.jquery.com/jquery-3.1.0.js"></script>
  </head>
  <body>
    <p class="copy" title="actual text to be copied">Hello world.</p>

    <script>
    $('document').ready(function(){

      $(".copy").on({
        click: function(e) {
          document.execCommand("copy");
        },
        copy: function(event) {
          if (event.originalEvent.clipboardData) {
            // allegedly copies the text to the clipboard
            event.originalEvent.clipboardData.setData("text/plain", $(this)[0].title);
            // show us what was copied.
            alert(event.originalEvent.clipboardData.getData("text"));
          }
        }
      });
    });
    </script>
  </body>
</html>

event.clipboardData不存在,但是event.originalEvent.clipboardData,所以我正在使用它。

但我认为问题是event.originalEvent.clipboardData实际上不是剪贴板。但是jQuery似乎并没有将API的那部分暴露给它自己的event

我是否将jQuery应用于实际事件而不是originalEvent?如果是,那怎么回事?

这是一个jsbin:https://jsbin.com/borumexuga/edit?html,js,output

1 个答案:

答案 0 :(得分:2)

在if。

中插入event.preventDefault();

https://jsbin.com/guwowomece/1/edit?html,js,output