我只是复制了这本书的内容:
window.onload = init;
function init() {
var button = document.getElementById("addButton");
button.onclick = handleButtonClick();
}
function handleButtonClick() {
alert("Button has been clicked");
}
问题在于,当我加载页面时会显示警报,而不是在单击按钮时显示。有人为什么吗?
谢谢!
最佳答案
更改
button.onclick = handleButtonClick();
至
button.onclick = handleButtonClick;
(没有
()
。)原始行
button.onclick = handleButtonClick();
调用handleButtonClick
函数,然后将其返回值分配给button.onclick
。就像var a = foo();
...这会调用
foo
,然后将其返回值分配给a
。您不想这样做,只想将函数引用分配给
onclick
。因此,您可以通过函数名称来引用它,而无需调用它(因此,无需()
)。