javascript - 为什么我的更改背景颜色的功能运行(警报有效),但不更改颜色?

标签 javascript html ecmascript-6 dom-events ecmascript-5

目前正在学习 Javascript,完全是新手。尝试编写一个函数,当单击按钮时,切换 <body> 的背景颜色元素从白色到紫色,反之亦然。

警报有效,因此函数正在运行,但颜色永远不会改变。

完全不知道发生了什么......

HTML:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
  <title>My Title</title>

</head>
<body>>
  <button>Click me!</button>

  <h1>I am an h1!</h1>
    <p id="first" class="special">Hello</p>
    <p class="special">Goodbye</p>
    <p>Hi Again</p>
  <p id="last">Goodbye Again</p>
  

  <!-- SCRIPS -->
  <script type="text/javascript" src="exercises.js"></script>
</body>
</html>

JavaScript:

var color_button = document.querySelector("button");
var is_purple = false;

color_button.addEventListener("click", function() {
    alert("clicked");
    if (is_purple = false) {
        document.querySelector("body").style.backgroundColor = "purple";
        is_purple = true;
    }
    else {
        document.querySelector("body").style.backgroundColor = "white";
        is_purple = false;
    }
});

最佳答案

您的问题是您在比较器中使用了单个 equals。单等号是给变量赋值,不是比较。

color_button.addEventListener("click", function() {
    alert("clicked");
//what you had
//    if (is_purple = false) {
//what it should be
      if (is_purple === false) {
        document.querySelector("body").style.backgroundColor = "purple";
        is_purple = true;
    }
    else {
        document.querySelector("body").style.backgroundColor = "white";
        is_purple = false;
    }
});

关于javascript - 为什么我的更改背景颜色的功能运行(警报有效),但不更改颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52767305/

相关文章:

javascript - 如何在日期中减去年份并添加月份?

javascript - 即使事件循环已被占用,如何始终以超时终止 NodeJs 脚本?

javascript - 更改按钮 JavaScript 的位置

javascript - JQuery 不在现场或本地工作,但在 jsfiddle 中工作

javascript - IE7中使用for-loop时的切换效果问题

javascript - 从 JSON 生成动态条件表单字段 - AngularJS1.x

html - Bootstrap 按钮中独立字体图标的高度

javascript - 过滤 react 组件列表

javascript - 如何为嵌套对象使用 javascript 代理

javascript - 我还需要 babel 和 NodeJs5 吗?