为何btn.onClick绑定事件无效,addEventListener却正常工作?
问题原因分析
你遇到的核心问题是大小写错误:DOM元素的原生点击事件属性是小写的onclick,而非你写的onClick。
具体解释:
- 当你写
btn.onClick = addPara时,你只是给按钮元素添加了一个自定义的onClick属性,并没有绑定原生的点击事件触发逻辑,所以点击按钮不会执行addPara函数。 - 而
addEventListener("click", addPara)是标准的DOM2级事件绑定方式,它接收的事件类型字符串是"click"(规范要求小写),能正确识别并绑定按钮的点击事件,所以点击时会正常触发函数。
正确的DOM0级事件绑定写法:
如果你想使用事件属性的方式绑定,应该改成小写的onclick:
btn.onclick = addPara;
两种绑定方式的差异:
- DOM0级(
onclick属性):只能给同一个事件类型绑定一个处理函数,后续绑定的会覆盖之前的。 - DOM2级(
addEventListener):可以给同一个事件类型绑定多个处理函数,还能通过第三个参数指定事件是在捕获阶段还是冒泡阶段触发,功能更灵活。
内容的提问来源于stack exchange,提问作者tanvir
相关产品推荐
相关产品推荐

