Javascript 与window.onload混淆
我只是从一本书上复制粘贴了以下内容:Javascript 与window.onload混淆,javascript,javascript-events,Javascript,Javascript Events,我只是从一本书上复制粘贴了以下内容: window.onload = init; function init() { var button = document.getElementById("addButton"); button.onclick = handleButtonClick(); } function handleButtonClick() { alert("Button has been clicked"); } 问题是当我加载页面时,而不是当我单击按钮时,会出现警报。有人知道
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;调用handleButtonClick函数,然后将其返回值指定给button.onclick。一模一样
var a = foo();
…调用foo,然后将其返回值分配给a
您不想这样做,只想将函数引用分配给onclick。因此,您通过函数名引用函数,而不调用它,也不进行更改。
button.onclick = handleButtonClick();
到
没有这个
您的原始行,button.onclick=handleButtonClick;调用handleButtonClick函数,然后将其返回值指定给button.onclick。一模一样
var a = foo();
…调用foo,然后将其返回值分配给a
您不想这样做,只想将函数引用分配给onclick。因此,您通过函数名引用函数,而不调用它,也不使用