我正在做 Odin 的 Project Etch-a-Sketch javascript 项目。我决定尝试实现一个单独的功能 - 如果单击按钮,您将能够悬停绘图。如果您决定不单击按钮,则软件的默认操作是能够在单击时进行绘制。但是,我在实现这一点时遇到了困难。
我找不到任何关于此的信息,到目前为止我只尝试了一个不起作用的 if 循环(它立即开始通过悬停绘制)
hover_toggle.addEventListener("click", function() {
if (hover = false) {
hover = true
hover.classList.add("hover_on")
} else {
hover = false
hover.classList.remove("hover_on")
}
})
if (hover = true) {
square.forEach(square => square.addEventListener("mouseover", drawingFunction))
} else {
square.forEach(square => square.addEventListener("click", drawingFunction))
将条件检查放在事件监听器中,而不是在添加它们时。
square.forEach(square => {
square.addEventListener("mouseover", e => hover && drawingFunction(e));
square.addEventListener("click", e => hover || drawingFunction(e))
});