【发布时间】:2021-03-28 17:19:28
【问题描述】:
我有这个功能,旨在每次单击按钮时在按钮的两种预定义颜色之间切换背景:
const showAvailButtonClicked = (targetButton, clickedColor, unClickedColor) => {
let clickedElement = document.getElementById(targetButton)
let currColor = clickedElement.style.backgroundColor
if (currColor == clickedColor) {
clickedElement.style.backgroundColor = unClickedColor
} else {
alert("Current color:" + currColor)
clickedElement.style.backgroundColor = clickedColor
}
}
let targetButton = document.getElementById("testbutton")
targetButton.addEventListener("click", () => {
showAvailButtonClicked("testbutton","#ba0202", "#0f2e0c")
})
#testbutton {
background-color: #0f2e0c;
}
<button id="testbutton">Toggle</button>
我在上面这个简单的代码中遇到了两个问题:
1 - 按钮以这种颜色 unClickedColor = #0f2e0c 开头。但是,在第一次单击时,警报不会注册任何颜色。 IE。警报消息仅显示 Current color:。
2 - 在第 2 次及后续点击中,来自该行的注册颜色 let currColor = clickedElement.style.backgroundColor 提供 RGB 格式 rgb(r, g, b)。如何强制将其转换为十六进制格式以便进行颜色比较?谢谢。
【问题讨论】:
-
请提供最少的 HTML 来重现您的问题。
-
嗨,我已经更新了问题。
标签: javascript html css