[英]How to toggle button colour when it is clicked and change the colour back to its previous colour when it is clicked again
我必須創建一個用於主演消息的按鈕。 最初按鈕的顏色是白色,當我點擊按鈕時它應該將顏色更改為金色,再次單擊相同按鈕(取消星空消息)時,顏色應該再次將顏色更改為初始背景顏色i:e白色。
HTML: <button class="btn-hold" data-text-swap=" Starred!">Star Message!</button>
JavaScript(用於切換按鈕上的消息):
button.addEventListener('click', function() {
if (button.getAttribute("data-text-swap") == button.innerHTML) {
button.innerHTML = button.getAttribute("data-text-original");
} else {
button.setAttribute("data-text-original", button.innerHTML);
button.innerHTML = button.getAttribute("data-text-swap");
}
}, false);
CSS:
.btn-hold{
float: right;
text-decoration-color: white;
background-color: ;
font-family: Lato;
font-size: 20px;
cursor: pointer;
}
button{
float: right;
}
button:focus{
background:#FFD700;
}
您可以使用classList屬性的本機toggle
方法。 您的JavaScript
也缺少對單擊button
的引用。
var button = document.querySelector('.btn-hold'); button.addEventListener('click', function() { this.classList.toggle('btn-alt-color'); if (button.getAttribute("data-text-swap") == button.innerHTML) { button.innerHTML = button.getAttribute("data-text-original"); } else { button.setAttribute("data-text-original", button.innerHTML); button.innerHTML = button.getAttribute("data-text-swap"); } }, false);
.btn-hold { float: right; text-decoration-color: white; background-color: ; font-family: Lato; font-size: 20px; cursor: pointer; } button { float: right; } button:focus { background: #FFD700; } .btn-hold.btn-alt-color { background-color: lightgreen; }
<button class="btn-hold" data-text-swap=" Starred!">Star Message!</button>
請注意, element.classList.toggle
返回一個布爾值,不需要復雜化:
var button = document.querySelector('.btn-hold'), defaultButtonTxt = button.textContent; button.onclick = function() { this.textContent = (this.classList.toggle('btn-alt-color')) ? this.dataset.textSwap : defaultButtonTxt; }
button { float: right; } .btn-hold { float: right; text-decoration-color: white; background: #FFD700; font-family: Lato; font-size: 20px; cursor: pointer; } .btn-alt-color { background-color: lightgreen; }
<button class="btn-hold" data-text-swap=" Starred!">Star Message!</button>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.