javascript - 我无法为我的柜台项目添加颜色
问题描述
我正在创建一个计数器项目,当单击相应的按钮时会增加重置或减少计数,并且计数的颜色也会针对计数的正负和零值发生变化,但是如果计数为正、负、零,我无法更改计数的颜色,但是我的代码仅在计数为零时执行。
<!DOCTYPE html>
<html>
<head>
<title>Counter</title>
<link rel="stylesheet" type="text/css" href="./counter.css">
</head>
<body>
<h1>Counter<h1>
<h1 id="counter">0</h1>
<div>
> <ul>
<li id="decrease"><button>DECREASE</button></li>
<li id="reset"><button>RESET</button></li>
<li id="increase"><button>INCREASE</button></li>
</ul>
</div>
<script src="counter.js">
</script>
</body>
</html
const decrease = document.getElementById("decrease");
const increase = document.getElementById("increase");
const reset = document.getElementById("reset");
var counter = document.getElementById("counter");
var count = 0;
decrease.addEventListener("click", function(){
count -= 1;
counter.textContent = count;
});
increase.addEventListener("click", function(){
count += 1;
counter.textContent = count;
});
reset.addEventListener("click", function(){
count = 0;
counter.textContent = count ;
});
counter.style.color = colour();
function colour(){
if (count === 0){
return "blue";
}
if(count > 0){
return "green";
}
if(count < 0){
return "black";
}
}
解决方案
您尝试更新的方式存在问题,color
这就是它未更新的原因。而不是每次点击调用函数,你只是运行它一次,因此问题。您应该创建一个函数来更新颜色并在所有 3 个单击处理程序中更新计数器后调用它。
let count = 0;
const elemCounter = document.getElementById("counter");
function increase() {
count++;
updateCount();
}
function decrease() {
count--;
updateCount();
}
function reset() {
count = 0;
updateCount();
}
function updateCount() {
elemCounter.innerText = count;
updateColor();
}
function updateColor() {
let color = "blue";
if (count > 0) {
color = "green";
} else if (count < 0) {
color = "red";
}
elemCounter.style.color = color;
}
#counter {
padding: 5px;
margin-bottom: 5px;
height: 25px;
}
<div id="counter"></div>
<button onclick="increase()">Increase</button> <br />
<button onclick="decrease()">Decrease</button> <br />
<button onclick="reset()">Reset</button>
推荐阅读
- swiftui - 如何让 SwiftUI NavigationLink 在编辑模式下工作?
- javascript - 如何在 Bootstrap 轮播结尾加载 JS 脚本?
- hibernate - 在 Hibernate5 和 Springboot 2.1.x 中使用 SessionFactory
- python - 我怎么知道我从 ib_api reqMktData 检索数据?
- jquery - jquery lightgallery 在标题中有指向另一个页面的网址?
- angular - 如何创建与 ReactiveForms 一起使用的自定义单选按钮角度组件
- linq - .NET Core 表达式 DbFunctions DiffDays
- java - 为什么ExecutorSrvice的Callable会阻塞内部任务?(来自 Scala 中的 FP)
- azure - 如何从 VS Code 发布到 Azure 中的开发槽
- regex - Ruby - 正则表达式允许任何非 ASCII - URL 中的中文字符