当我用鼠标悬停在文本“test”上时,我试图使文本“test”改变颜色。我对此使用命名空间,但我似乎无法弄清楚为什么它不起作用。有人有什么建议吗?谢谢。
var $MinNamespace = {};
$MinNamespace.mouseOver = function() {
document.getElementById("text").style.color = "blue";
}
$MinNamespace.mouseOut = function() {
document.getElementById("text").style.color = "black";
}
document.getElementById("text").onmouseover = $MinNamespace.mouseOver();
document.getElementById("text").onmouseout = $MinNamespace.mouseOut();
<div id="text" style="font-size:100px;">Test</div>
最佳答案
您正在将 mouseOver
/mouseOut
的结果分配给事件处理程序。这些函数没有结果,所以什么也没有发生。
代码必须如下所示(注意每行末尾缺少的括号)。
document.getElementById("text").onmouseover = $MinNamespace.mouseOver;
document.getElementById("text").onmouseout = $MinNamespace.mouseOut;
通过这种方式使用它,您可以将函数(而不是同一函数的返回值)分配给事件处理程序。
关于Javascript对象(改变颜色),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48368319/