【问题标题】:How do I program a javascript function to switch button colors back and forth?如何编写 javascript 函数来来回切换按钮颜色?
【发布时间】:2021-11-03 01:32:53
【问题描述】:

我正在尝试使用 onclick 将蓝色按钮变为红色,但我也希望在使用相同的 onclick 功能再次单击后按钮变回蓝色。

我该怎么做?

【问题讨论】:

  • 到目前为止你有什么?提供一些代码,看看是什么问题。

标签: javascript html css button onclick


【解决方案1】:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .round {
            border-radius: 5px;
            color: aliceblue;
        }
        .blue {
            background-color: blue;
        }
        .red {
            background-color: red;
        }
    </style>
</head>
<body>
    <button id="btn" class="round blue" onclick="clickBtn()">button</button>
    <script>
        function clickBtn() {
            let btn = document.getElementById('btn')
            if(btn.classList.contains('blue')) {
                btn.classList.remove('blue')
                btn.classList.add('red')
            } else {
                btn.classList.remove('red')
                btn.classList.add('blue')
            }
        }
    </script>
</body>
</html>

【讨论】:

  • 如果您使用多个类,element.classList.add("mystyle"); 会有所帮助。然后删除它,element.classList.remove("mystyle"); 如果它“等于”一个类,则使用 element.classList.contains("mystyle");
  • 例如,如果 &lt;button class="blue round"&gt; 那么 className 将是 "blue round" 并且它不再匹配 if 条件。像@dgood 所说的那样使用 classList 更加灵活。
  • 是的。使用classList更灵活。
【解决方案2】:

你可以给按钮一个默认的背景颜色,然后添加一个click事件监听器来切换一个应用不同背景颜色的类:

document.querySelector('button').addEventListener('click', function(){ this.classList.toggle("red") })
button{
  background-color:green;
}
.red{
  background-color:red;
}
&lt;button&gt;Hello World!&lt;/button&gt;

【讨论】:

  • 好答案!您使用了classList,这是推荐的做法。
猜你喜欢
  • 2022-01-10
  • 2014-01-21
  • 1970-01-01
  • 1970-01-01
  • 2011-09-11
  • 1970-01-01
  • 1970-01-01
  • 2013-06-07
  • 2017-02-07
相关资源
最近更新 更多