Javascript事件功能问题

时间:2011-09-18 20:58:00

标签: javascript events

为什么我将事件添加为如下函数:

function func(arg) 
{
arg.style.marginLeft = "65px";
}
window.onload = function() {
var test = document.getElementById("aaa");
test.onmouseover = func(test);
}

它已立即执行(即使我没有悬停元素)。

但是这个有效:

window.onload = function() {
var test = document.getElementById("aaa");
test.onmouseover = function() {
           test.style.marginLeft = "65px";
      }
}

1 个答案:

答案 0 :(得分:3)

您将“onmouseover”属性设置为函数调用表达式的返回值

test.onmouseover = func(test);

“func(test)”调用函数“func()”,就像在任何其他代码中一样。

你可以这样做:

test.onmouseover = func;

这将绑定事件处理程序而不是调用“func()”,但它不会安排传递附加参数。 编辑哦等等只是DOM元素本身。