Можно ли использовать jQuery для копирования текста по клику? - PullRequest
0 голосов
/ 26 апреля 2018

Я пытаюсь заставить jQuery скопировать атрибут заголовка элемента при щелчке, но я думаю, что у меня возникла проблема с всплывающими событиями.

Я могу сделать это достаточно просто с прямым 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 голосов
/ 27 апреля 2018

Вставьте event.preventDefault(); внутри if.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...