Я пытаюсь заставить 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