onclick事件 - 为什么javascript运行它onload

时间:2012-04-27 18:10:59

标签: function javascript-events onclick

<p id="specialp">some content</p>
<script>
document.getElementById('specialp').onclick=alert('clicked');
</script>

我刚刚开始使用javascript,我不明白为什么在页面加载时执行警报,但是当我点击该段落时则不行。

当我把它放入内联时,处理程序按照我的预期工作,如下所示:

<p id="specialp" onclick="alert('clicked')" >some content</p>

1 个答案:

答案 0 :(得分:4)

这是因为您没有将onclick赋值包装为实际函数,因此它尝试将alert('clicked')的结果分配给onclick事件处理程序(这意味着它可能undefined时分配)。你需要做的是为这个处理程序分配一个函数,如下所示:

document.getElementById('specialp').onclick = function()
{
    alert('clicked');
};

当您在HTML中执行相同操作时,DOM会自动将该内容包装在函数中。