我只是复制了这本书的内容:

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。因此,您可以通过函数名称来引用它,而无需调用它(因此,无需())。

08-08 08:42