刚开始使用JavaScript并尝试通过简单的练习自学。我已经制作了这个非常简单的小程序,它按预期工作:
<!DOCTYPE html>
<html>
<head>
<title>Exercise</title>
<script type="text/javascript">
function doSomething(){
alert("you clicked the text");
}
</script>
</head>
<body>
<p id="text" onclick="doSomething()"> This is some text </p>
</body>
</html>
单击文本时,将显示警报。然后我稍微修改了它:
<!DOCTYPE html>
<html>
<head>
<title>Exercise 2</title>
<script type="text/javascript">
var whenClicked = document.getElementById("text");
whenClicked.onclick = doSomething();
function doSomething(){
alert("you clicked the text");
}
</script>
</head>
<body>
<p id="text"> This is some text </p>
</body>
</html>
期望它以完全相同的方式工作,但是当我在Web浏览器上加载文档时,警报会立即显示,而不会单击文本。为什么会这样?谢谢P。
答案 0 :(得分:0)
代码中出现小错误。你必须改变:
whenClicked.onclick = doSomething();
到
whenClicked.onclick = doSomething;
这种情况正在发生,因为当括号出现时,函数会被imidiatly执行