javascript - 如何在单击时切换按钮颜色并在再次单击时将颜色更改回之前的颜色

标签 javascript html css

我必须制作一个用于给消息加星标的按钮。最初按钮的颜色是白色,当我点击按钮时,它应该将颜色更改为金色,当再次单击相同的按钮(取消星标消息)时,颜色应该再次将颜色更改为初始背景颜色,即白色.

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 方法属性(property)。 JavaScript 中还缺少对单击的按钮 的引用。

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>

jsFiddle

关于javascript - 如何在单击时切换按钮颜色并在再次单击时将颜色更改回之前的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55445418/

相关文章:

javascript - 高度为 15px,宽度为 7px 的等宽字体

javascript - 打破带有 lint 问题的下划线循环

html - div 边距更改父 div 的边距

html - 淡出框边界中的文本并缩放图像以适合自动大小的 parent

css - 如何将 jQuery UI 样式应用于普通表单元素,例如输入和选择标签?

javascript - 如果一个延迟被拒绝,cujojs 中的when.all() 2.2.1 不会拒绝

javascript - Graphql 服务器 - 无法通过 IP 地址 url 访问(本地主机工作正常)

PHP 检查它是否是一个有效的 HTML 属性

html - 正则表达式删除 <a 和 </a> 标签之间的所有标记,[ 和 ] 内除外

html - Chrome Firefox HTML 显示