首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在按钮javascript上切换颜色

在按钮javascript上切换颜色
EN

Stack Overflow用户
提问于 2017-06-30 20:02:06
回答 3查看 4.4K关注 0票数 0

触发警报:新手问题。

我正在尝试更改按钮的颜色,从灰色开始。在第一次单击时,我希望它变为绿色,在第二次单击时,我希望它变为红色,然后在每次单击时在绿色和红色之间切换。

问题是一旦它变成绿色,我就不能让它工作了。如果我在代码中手动将start值设置为绿色,则else If会起作用,并将按钮变为红色,但如果我从灰色按钮开始并单击它以使其变为绿色,则不会。

如何让它在第一次单击时变为绿色,在第二次单击时变为红色,然后在每次单击时在红色和绿色之间切换?

Html:

代码语言:javascript
复制
    <input type="button" id="button1" class="button" onclick="colorChange()" value="Click Here" />

javascript:

代码语言:javascript
复制
    function    colorChange() {
var button = document.getElementById('button1').style.backgroundColor;  
var color = '';

if (color !== 'green') {
    color = 'green';
    document.getElementById('button1').style.backgroundColor = color;       

    }
else if (color == 'green') {
    color = 'red';
    document.getElementById('button1').style.backgroundColor = color; 

    }
}

和css类(如果有关系):

代码语言:javascript
复制
    .button {
background-color: #909090;
color: #d3d3d3;
font-size: 16px;
padding: 10px 20px;
border-radius: 10px;
border: 0px;
}

注意:可能有更好的方法和其他技术来做到这一点,但我的目的是了解它是如何工作的(以及为什么它目前不工作)。

EN

回答 3

Stack Overflow用户

发布于 2017-06-30 20:08:10

代码语言:javascript
复制
var button = document.getElementById('button1');
var color = button.style.backgroundColor;
button.addEventListener('click', function () {
  // this function executes whenever the user clicks the button
  color = button.style.backgroundColor = color === 'green' ? 'red' : 'green';
});
代码语言:javascript
复制
.button {
  background-color: #909090;
  color: #d3d3d3;
  font-size: 16px;
  padding: 10px 20px;
  border-radius: 10px;
  border: 0px;
}
代码语言:javascript
复制
<input type="button" id="button1" class="button" value="Click Here" />

这是一个较短的版本:

代码语言:javascript
复制
document.getElementById('button1').addEventListener('click', function () {
  this.style.backgroundColor = this.style.backgroundColor === 'green' ? 'red' : 'green';
});
代码语言:javascript
复制
.button {
  background-color: #909090;
  color: #d3d3d3;
  font-size: 16px;
  padding: 10px 20px;
  border-radius: 10px;
  border: 0px;
}
代码语言:javascript
复制
<input type="button" id="button1" class="button" value="Click Here" />

票数 2
EN

Stack Overflow用户

发布于 2017-06-30 20:04:30

你需要改变你的状况

代码语言:javascript
复制
function    colorChange() {
var button = document.getElementById('button1').style.backgroundColor;  
var color = '';

if (button !== 'green') {
    color = 'green';
    document.getElementById('button1').style.backgroundColor = color;       

    }
else if (button === 'green') {
    color = 'red';
    document.getElementById('button1').style.backgroundColor = color; 

    }
}
代码语言:javascript
复制
 .button {
background-color: #909090;
color: #d3d3d3;
font-size: 16px;
padding: 10px 20px;
border-radius: 10px;
border: 0px;
}
代码语言:javascript
复制
<input type="button" id="button1" class="button" onclick="colorChange()" value="Click Here" />

票数 1
EN

Stack Overflow用户

发布于 2017-06-30 20:05:33

以简单的方式,您可以使用数组并循环遍历这些值。

代码语言:javascript
复制
i = -1;
var bg = ["green", "red"];
function colorChange(which) {
  which.style.backgroundColor = bg[i++ % bg.length];
}
代码语言:javascript
复制
.button {
  background-color: #999;
  color: #d3d3d3;
  font-size: 16px;
  padding: 10px 20px;
  border-radius: 10px;
  border: 0px;
}
代码语言:javascript
复制
<input type="button" id="button" class="button" onclick="return colorChange(this);" value="Click Here" />

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44846038

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档