onclick event - why Javascript runs it onload(onclick 事件 - 为什么 Javascript 在加载时运行它)
问题描述
<p id="specialp">some content</p>
<script>
document.getElementById('specialp').onclick=alert('clicked');
</script>
我刚开始使用 Javascript,我不明白为什么在页面加载时会执行警报,但在我单击该段落时不会执行.
I'm just starting out with Javascript, and I don't understand why the alert is executed when page loads, but not when I click that paragraph.
当我将它内联时,处理程序会按预期工作,如下所示:
The handler works as I expect when I put it inline, like this:
<p id="specialp" onclick="alert('clicked')" >some content</p>
推荐答案
这是因为你没有把 onclick
赋值包装成一个实际的函数,所以它会尝试赋值 alert 的结果('clicked')
到 onclick 事件处理程序(这意味着它可能是 undefined
分配时).您需要做的是为该处理程序分配一个函数,如下所示:
This is because you didnt wrap the onclick
assignment as an actual function, so it attempts to assign the result of alert('clicked')
to the onclick event handler (which means it's probably undefined
when assigned). What you need to do is assign a function to that handler like so:
document.getElementById('specialp').onclick = function()
{
alert('clicked');
};
当您在 HTML 中做同样的事情时,DOM 会自动为您将该内容包装在一个函数中.
When you do the same thing in HTML, the DOM automatically wraps that content in a function for you.
这篇关于onclick 事件 - 为什么 Javascript 在加载时运行它的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:onclick 事件 - 为什么 Javascript 在加载时运行它
基础教程推荐
- 自定义 XMLHttpRequest.prototype.open 2022-01-01
- Electron 将 Node.js 和 Chromium 上下文结合起来意味着 2022-01-01
- Chart.js 在线性图表上拖动点 2022-01-01
- 如何使用TypeScrip将固定承诺数组中的项设置为可选 2022-01-01
- 直接将值设置为滑块 2022-01-01
- html表格如何通过更改悬停边框来突出显示列? 2022-01-01
- 用于 Twitter 小部件宽度的 HTML/CSS 2022-01-01
- Vue 3 – <过渡>渲染不能动画的非元素根节点 2022-01-01
- 如何使用JIT在顺风css中使用布局变体? 2022-01-01
- 我可以在浏览器中与Babel一起使用ES模块,而不捆绑我的代码吗? 2022-01-01