JavaScript 按钮在第二次点击时不起作用

撒拉族

我想让一个程序在单击按钮后更改 div 的背景颜色。

第一次单击后,它应该将一种颜色更改为第二种颜色。第二次点击后,颜色应该回到第一个选项。最后一次,颜色应该再次切换到第二个选项。所以它应该工作3次。但在我的代码中,它只适用于第一次点击。

我做错了什么?

var btn = document.getElementById('button');
var box = document.getElementById('sq');

function changeColor() {

    var isPink = true;
    var colorA = "#BA498B";
    var colorB = "#5964E3";
    var i = 0;

    while (i < 3) {
        if (isPink) {
            change(colorB);
            isPink = false;
            i++;           
        }  else {
            change(colorA);
            isPink = true;
            i++;
        }        
    }
}

function change(color) {

    btn.addEventListener('click', function () {
        box.style.backgroundColor = color;
    });

}

window.onload = changeColor;

骆驼

每次单击时,您都会添加一个新的、相同的事件处理程序。而是在页面加载时添加一次,以便冗余处理程序不会相互抵消。

var isPink = true;

function changeColor() {
  var colorA = "#BA498B";
  var colorB = "#5964E3";

  if (isPink) {
    change(colorB);
  } else {
    change(colorA);
  }

  isPink = !isPink;
}

function change(color) {
  document.getElementById('sq').style.backgroundColor = color;
}

window.onload = function() {
  document.getElementById('button').addEventListener('click', changeColor);
};
#sq {
  width: 100px;
  height: 100px;
  position: relative;
}
<button id=button>CLICK</button>
<div id=sq></div>

不知道你想要什么循环,所以我删除了它。它会立即运行,因此您永远不会看到如此快速的颜色变化。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Javascript - 脚本在第二次点击时不起作用

Javascript代码第二次不起作用

Javascript.为什么第一次点击不起作用但第二次点击正常?

Javascript Show Hide input 在第二次加载引导模式时不起作用

JavaScript fadeOut函数在第二次调用时不起作用

为什么我的JavaScript代码仅在第二次点击时执行?

Javascript:第二次单击按钮时隐藏内容

第二次刷新时的JavaScript输出

尝试在按钮单击时旋转div,但仅在第二次单击时有效(使用Javascript)

Javascript-当单击按钮时,第二次单击后切换CSS属性

单击按钮时,警报第二次不起作用

虽然循环GUI按钮在第二次按下时不起作用

在第二次单击html按钮之前,JavaScript代码不会触发?

我的HTML按钮的javascript将不会第二次切换

如何在第二次单击时获得 Javascript 按钮以更改 self 的类和 * 有时 * 包含相同类的其他按钮上的类

RecyclerView item onClickListener 在第一次点击时不起作用,但在第二次点击时起作用

Javascript在循环中第二次执行函数时抛出未定义的错误

当我第一次按下按钮时,它不会执行我的 JavaScript,直到我第二次按下它

AJAX / javascript无法通过第二次

如何确保javascript事件第二次运行?

第二次单击后立即执行Javascript

Javascript函数第二次执行

为什么按钮只有在第二次点击后才起作用?(反应)

为什么我的 js onclick 事件在第二次点击时起作用?

如何使$ location.path在第二次点击时起作用

第二次遍历文件不起作用

getLastLocation在第二次不起作用

第二次过渡将不起作用

jQuery第二次单击不起作用