为什么我将事件添加为如下函数:
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";
}
}
答案 0 :(得分:3)
您将“onmouseover”属性设置为函数调用表达式的返回值:
test.onmouseover = func(test);
“func(test)”调用函数“func()”,就像在任何其他代码中一样。
你可以这样做:
test.onmouseover = func;
这将绑定事件处理程序而不是调用“func()”,但它不会安排传递附加参数。 编辑哦等等只是DOM元素本身。