JavaScript中注册和移除事件的4种方式
本文详细介绍JavaScript中注册和移除事件的四种主要方式。包括HTML内联绑定、DOM0级直接赋值、W3C标准的addEventListener/removeEventListener以及IE特有的attachEvent/detachEvent。重点解析各方法的参数差异、事件冒泡与捕获机制,以及不同浏览器下的兼容性问题,帮助开发者根据需求选择合适的事件处理方案。
HTML内联事件绑定
在HTML元素中注册事件处理程序存在多种实现路径。
第一种方式:
代码如下:
<script>
function test()
{
alert("OK");
}
</script>
<a href="#" onclick="test()">测试</a> DOM0级事件处理
第二种方式:
代码如下:
<a href="#" id="a">测试</a>
<script>
function test()
{
alert("OK");
}
var x=document.getElementById("a");
x.onclick=test;//注意没有()
</script> W3C标准事件模型
第三种方式(W3C模型):
代码如下:
<a href="#" id="a">测试</a>
<script>
function test()
{
alert("OK");
}
var x=document.getElementById("a");
x.addEventListener("click",test,false);
</script> 在addEventListener()方法的三个参数中,第一个参数指定事件类型(注意不包含前缀"on"),第二个参数指定处理函数,第三个参数是一个布尔值,用于标识事件触发顺序:true表示事件冒泡(从内向外),false表示事件捕获(从外向内)。
移除该事件的方法为removeEventListener(),其参数结构与addEventListener()完全一致。
这种模式在IE浏览器中会报错,在chrome中正常执行。
IE专有事件模型
第四种方式(微软模型):
代码如下:
<a href="#" id="a">测试</a>
<script>
function test()
{
alert("OK");
}
var x=document.getElementById("a");
x.attachEvent("onclick",test);
</script> 在attachEvent()方法的两个参数中,第一个参数指定事件类型(注意包含前缀"on"),第二个参数指定处理函数。
移除该事件的方法是detachEvent(),其参数结构与attachEvent()相同。
网页开发三者分工:HTML结构、CSS样式与JavaScript交互怎么协作
2026-11-05 12:51:22
JS解析URL参数时怎么处理中文乱码和特殊字符
2026-11-05 12:47:23
js-cookie 存储 JSON 对象:自动序列化与反序列化技巧
2026-11-05 12:36:26
marked.js 快速上手:安装与基础 Markdown 转 HTML 示例
2026-11-05 09:32:53
Phaser.js 与 PixiJS、Cocos Creator 的技术选型对比
2026-11-05 08:36:30
