JavaScript三种事件绑定方式对比:内联、DOM属性与addEventListener

作者:像素猫

时间:2026-10-22

浏览:646

本文详细解析JavaScript中三种常见的事件绑定方式:内联HTML绑定、DOM属性赋值以及addEventListener方法。通过代码示例对比发现,前两种在多次绑定时存在覆盖或仅执行首次的问题,而addEventListener支持同一元素绑定多个同类型事件且按顺序执行,是更灵活可靠的方案。

文章目录

JavaScript三种事件绑定方式概述

本文介绍JavaScript中三种常见的事件绑定方法,并深入分析它们之间的核心区别,供开发者参考。

JavaScript主要包含以下三种事件绑定方式:

内联HTML绑定

第一种方式:内联HTML绑定。


<div id="btn" onclick="clickone()"></div> //直接在DOM里绑定事件
<script>
function clickone(){ alert("hello"); }
</script>

DOM属性直接赋值

第二种方式:通过DOM属性直接赋值。


<div id="btn"></div>
<script>
document.getElementById("btn").onclick = function(){ alert("hello"); } //脚本里面绑定
</script>

addEventListener方法

第三种方式:使用addEventListener方法。


<div id="btn"></div>
<script>
document.getElementById("btn").addeventlistener("click",clickone,false); //通过侦听事件处理相应的函数
function clickone(){ alert("hello"); }
</script>

三种方式的核心区别分析

那么问题来了,1 和 2 的方式是我们经常用到的,那么既然已经有两种绑定事件的方法为什么还要有第三种呢?答案是这样的:

使用 "addeventlistener" 可以为同一元素绑定多次相同类型的事件,且所有绑定的回调函数都会依次执行。相比之下,如果在DOM结构中直接绑定两个 "onclick" 属性,只有第一个会被执行;而在脚本中通过匿名函数直接赋值给DOM属性的方式,后绑定的事件会覆盖前一个,导致只执行最后一个绑定的事件。

内联绑定的多次执行限制

内联HTML绑定的多次绑定测试:


<div id="btn" onclick="clickone()" onclick="clicktwo()"></div>
<script>
function clickone(){ alert("hello"); } //执行这个
function clicktwo(){ alert("world!"); }
</script>

DOM属性绑定的覆盖行为

DOM属性赋值的多次绑定测试:


<div id="btn"></div>
<script>
document.getElementById("btn").onclick = function(){ alert("hello"); }
document.getElementById("btn").onclick = function(){ alert("world"); } //执行这个
</script>

addEventListener的多重绑定优势

addEventListener的多重绑定测试:


<div id="btn"></div>
<script>
document.getElementById("btn").addeventlistener("click",clickone,false);
function clickone(){ alert("hello"); } //先执行
document.getElementById("btn").addeventlistener("click",clicktwo,false);
function clicktwo(){ alert("world"); } //后执行
</script>

综上所述,开发者可根据具体场景灵活选择合适的事件绑定方式。

补充说明:关于JavaScript常用事件及相关功能的详细说明,还可参考本站提供的在线工具:

JavaScript事件与功能说明大全: http://tools.jb51.net/table/javascript_event

更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript事件相关操作与技巧大全》、《JavaScript时间与日期操作技巧总结》、《JavaScript切换特效与技巧总结》、《JavaScript查找算法技巧总结》、《JavaScript动画特效与技巧汇总》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结》

希望本文所述内容对大家理解JavaScript程序设计有所帮助。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章