<p id="specialp">some content</p>
<script>
document.getElementById('specialp').onclick=alert('clicked');
</script>
我刚刚开始使用javascript,我不明白为什么在页面加载时执行警报,但是当我点击该段落时则不行。
当我把它放入内联时,处理程序按照我的预期工作,如下所示:
<p id="specialp" onclick="alert('clicked')" >some content</p>
答案 0 :(得分:4)
这是因为您没有将onclick
赋值包装为实际函数,因此它尝试将alert('clicked')
的结果分配给onclick事件处理程序(这意味着它可能undefined
时分配)。你需要做的是为这个处理程序分配一个函数,如下所示:
document.getElementById('specialp').onclick = function()
{
alert('clicked');
};
当您在HTML中执行相同操作时,DOM会自动将该内容包装在函数中。