【发布时间】:2018-03-08 19:35:15
【问题描述】:
在下面的代码中,为什么页面加载时标题文本会发生变化,而不仅仅是在单击按钮后?
<h1 id="header">This is a header</h1>
<button id="btn1">Change text</button>
<script>
function change_text(target_id, target_text) {
document.getElementById(target_id).textContent = target_text;
}
button1 = document.getElementById("btn1")
button1.onclick = change_text("header", "something")
</script>
【问题讨论】:
-
您将 onclick 设置为函数执行而不是函数定义。因此,当定义 onclick 时,它将执行该功能。所以你会想要更像: button1.onclick = function() { change_text("header", "something"); }
-
因为您将 onclick 设置为运行该函数的函数。这不是您执行此任务的方式。
-
另一个重复的,特定于事件处理程序:Why does click event handler fire immediately upon page load?
标签: javascript html