此代码调用f()
函数:
<p id="firstp">Hello!</p>
<script>
function f() {
doSomething();
};
document.getElementById("firstp").onmouseover = function() {
f();
};
</script>
但如果我这样写,它就会停止工作:
document.getElementById("firstp").onmouseover = f();
为什么直接调用函数时事件处理程序没有设置?
答案 0 :(得分:6)
因为您不想调用该函数,所以您只想告诉浏览器它应该在鼠标悬停事件发生时调用它。 f()
(函数名称后的圆括号)调用该函数并分配给.onmouseover
f
返回的内容。您想将f
的引用分配给.onmouseover
,所以您要找的是
document.getElementById("firstp").onmouseover = f;