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