1

此代码调用该f()函数:

<p id="firstp">Hello!</p> 
<script>
  function f() {
    doSomething();
  };
  document.getElementById("firstp").onmouseover = function() {
      f();
  };
</script>

然而,如果我这样写,它就会停止工作:

  document.getElementById("firstp").onmouseover = f();

为什么我直接调用函数时没有设置事件处理程序?

4

1 回答 1

6

因为您不想调用该函数,您只想告诉浏览器它应该在鼠标悬停事件发生时调用它。f()(函数名称后的圆括号)调用函数并分配给返回的.onmouseover内容。f您想将引用分配给fto .onmouseover,所以您要寻找的是

document.getElementById("firstp").onmouseover = f;
于 2012-10-20T17:28:01.743 回答