如何創建幾個按鈕? 我使用以下腳本: "https://www.w3schools.com/howto/tryit.asp? filename = try how _ js _ copy _ clipboard 2 & quot;
腳本:
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
.tooltip {
position: relative;
display: inline-block;
}
.tooltip .tooltiptext {
visibility: hidden;
width: 140px;
background-color: #555;
color: #fff;
text-align: center;
border-radius: 6px;
padding: 5px;
position: absolute;
z-index: 1;
bottom: 150%;
left: 50%;
margin-left: -75px;
opacity: 0;
transition: opacity 0.3s;
}
.tooltip .tooltiptext::after {
content: "";
position: absolute;
top: 100%;
left: 50%;
margin-left: -5px;
border-width: 5px;
border-style: solid;
border-color: #555 transparent transparent transparent;
}
.tooltip:hover .tooltiptext {
visibility: visible;
opacity: 1;
}
</style>
</head>
<body>
<input type="text" value="Hello World" id="myInput">
這是按鈕,我想第二個單獨工作在他們下面
<div class="tooltip">
<button onclick="myFunction()" onmouseout="outFunc()">
<span class="tooltiptext" id="myTooltip">Copy to clipboard</span>
Copy text
</button>
</div>
這里我想要第二個按鈕,但如果我使用下面的部分,它不工作,它總是復制第一部分。
<script>
function myFunction() {
var copyText = document.getElementById("myInput");
copyText.select();
copyText.setSelectionRange(0, 99999);
navigator.clipboard.writeText(copyText.value);
var tooltip = document.getElementById("myTooltip");
tooltip.innerHTML = "Copied: " + copyText.value;
}
function outFunc() {
var tooltip = document.getElementById("myTooltip");
tooltip.innerHTML = "Copy to clipboard";
}
</script>
</body>
</html>
如果我創建了幾個按鈕,最上面的一個總是被復制。我知道那沒用。 我想讓這些按鈕彼此獨立工作。我怎樣才能改變代碼使它工作 如果有人能幫我,那就太好了
我嘗試了很多,但我不知道如何編碼工作。
一個頁面上的id必須是唯一的——所以你可以用myInput2/myButton2添加一組新的input/button,或者你可以使用我在這里使用的替代方法。
(注意:與其有一個單獨的& quot工具提示& quot我更傾向于更改按鈕的文本,然后再改回來。這使得標記變得更加容易和容易理解。我已經為這個例子做了決定。它不會影響第2點中提出的按鈕/輸入如何相互關聯的核心問題。)
我已經刪除了內聯JS。現在,可以使用querySelectorAll選擇按鈕,并使用forEach將偵聽器添加到按鈕中。
當一個按鈕被點擊時,它找到它最近的previousElementSibling,這將是它的兄弟輸入元素。
單擊按鈕時,文本被分配到剪貼板。按鈕更改文本以確認這一點,然后在兩秒鐘后恢復到其原始文本內容。
const buttons = document.querySelectorAll('.copy');
buttons.forEach(button => {
button.addEventListener('click', handleClick);
});
function handleClick() {
const input = this.previousElementSibling;
input.select();
input.setSelectionRange(0, 99999);
navigator.clipboard.writeText(input.value);
this.textContent = 'Text copied';
setTimeout(() => this.textContent = 'Copy text to clipboard', 2000);
}
.copy { width: 10rem; }
<section class="field">
<input type="text" value="Hello World">
<button class="copy" aria-live="polite">
Copy text to clipboard
</button>
</section>
<section class="field">
<input type="text" value="Hello Planet Earth">
<button class="copy" aria-live="polite">
Copy text to clipboard
</button>
</section>
上一篇vue常用的提示
下一篇c 生成 遞歸 json