Confusion with window.onload

Confusion with window.onload

本文关键字:onload window with Confusion      更新时间:2023-09-26

>我只是从一本书中复制粘贴了这一部分:

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