1

我只是从书中复制粘贴了这一点:

window.onload = init;
function init() {
var button = document.getElementById("addButton");
button.onclick = handleButtonClick();
}
function handleButtonClick() {
alert("Button has been clicked");
}

问题是在我加载页面时出现警报,而不是在我单击按钮时出现。有人为什么吗?

谢谢!

4

1 回答 1

5

改变

button.onclick = handleButtonClick();

button.onclick = handleButtonClick;

(没有()。)

您的原始行button.onclick = handleButtonClick(); 调用handleButtonClick函数,然后将其返回值分配给button.onclick. 就像

var a = foo();

...它调用 foo然后将其返回值分配给a.

您不想这样做,您只想将函数引用分配给onclick. 所以你通过它的名字来引用这个函数,而不是调用它(所以,没有())。

于 2012-05-24T16:05:29.247 回答