1

我一定在这里遗漏了一些非常简单的东西,但我终其一生都无法弄清楚。为什么下面的页面执行alert页面加载,而不是按预期单击按钮?我试图将clicky()函数分配给事件侦听器(此分配发生在页面加载时),但实际警报发生在页面加载时(即调用 clicky 函数),并且按钮永远不会获得它的侦听器。我错过了什么?

<html>
<head>
<script>

function clicky() {
    alert("clicky");
}

function start() {
    var myButton = document.getElementById("theButton");
    myButton.addEventListener("onclick", clicky(), false);
}

window.onload = start;

</script>
</head>

<body>
<input type="button" id="theButton" value="I'm a button!">
</body>

</html>
4

2 回答 2

1

在调用 addEventListener 时尝试使用“click”而不是“onclick”。

于 2012-12-02T23:45:04.730 回答
1

您正在添加 clicky() 作为侦听器返回的内容,而不是 clicky 本身。clicky() 什么都不返回(未定义),这就是为什么没有附加处理程序的原因。只是去掉括号。

// 编辑:哦,我知道这只是问题的一半。

于 2012-12-02T23:48:32.107 回答