【发布时间】:2022-02-12 13:38:01
【问题描述】:
当鼠标移过导航栏元素时,我正在尝试更改它们的颜色。
这段代码可以做到这一点,但只针对第一个按钮:
let navOne = document.getElementById("nav1");
function mouseOn() {
nav1.style.color = "red";
}
function mouseOff() {
nav1.style.color = "black";
}
navOne.addEventListener('mouseover', mouseOn);
navOne.addEventListener('mouseout', mouseOff);
我一直在尝试转换代码,以便这些功能适用于多个按钮,但似乎无法让它工作。到目前为止的代码如下:
let navOne = document.getElementById("nav1");
function mouseOn(navButton) {
navButton.style.color = "red";
}
function mouseOff(navButton) {
navButton.style.color = "black";
}
navOne.addEventListener('mouseover', mouseOn(navOne));
navOne.addEventListener('mouseout', mouseOff(navOne));
它没有错误,但当我将鼠标按钮移到 nav1 元素上时不会导致任何颜色变化。
非常感谢任何帮助。
【问题讨论】:
-
mouseOn(navOne)立即调用该函数...在另一个注释中,函数内部的this是触发事件的元素-因此,无需将示例navOne传递为this === navOne里面mouseOn -
当然,你可以使用 CSS
:hover来实现这么简单的效果 -
或者
navOne.addEventListener('mouseover', () => mouseOn(navOne));
标签: javascript html css