这里是 Javascript 初学者...尝试添加类似于 css 伪类“Active”的功能,但使用的是原版 javascript。我试图在按下按钮时更改按钮的颜色,然后在释放按钮时恢复原始颜色。这就是我所拥有的:
myButton.addEventListener("mousedown", btnEvent);
myButton.addEventListener("mouseup", btnEvent);
...
btnEvent = function (e) {
var storedColor;
if (e.type == 'mousedown') {
storedColor= e.target.style.backgroundColor;
e.target.style.backgroundColor = someColorWhilePressed;
} else if (e.type == 'mouseup') {
e.target.style.backgroundColor = storedColor;
};
};
这不起作用,在 mouseup 时,'storedColor' 是未定义的。我认为这是因为没有共享同一个函数对象,而是创建了两个?如何才能做到这一点?附加到同一元素的两个或多个事件侦听器是否可以共享一个可以在调用之间持久化数据的公共目标对象(函数)?
谢谢。