首页 > 试题广场 >

有了解过事件模型吗,DOM0级和DOM2级有什么区别,DOM

[问答题]

有了解过事件模型吗,DOM0级和DOM2级有什么区别,DOM的分级是什么

DOM分级(DOM标准)

0级DOM

由W3C制定,在W3C开始制定之前,民间就有一套被广泛应用的规范,也就是人们常说的0级DOM。0级DOM定义了一些基本的事件与一个事件模型,这个事件模型规定了两个为元素绑定事件监听的方法:

1. 在标签中写一个与事件同名的属性:

<input type="button" onclick="fun()">

2. 用JS赋值的方法:

var btn = document.getElementById('.btn');
btn.onclick = fun;

这种绑定监听的方式,无法为一个事件添加多个监听,后续添加的监听回调,会覆盖前面的回调。

3. 清除监听

btn.onclick = null;

同时,用监听函数的返回值表示是否要清除浏览器的默认行为。为false时表示需要清除。

这个时候,还没有事件流的概念,因此并不存在捕获阶段、冒泡阶段一说。


1级DOM

仅仅定义了HTML与XML底层结构


2级DOM

增加许多事件,同时定义了DOM2级事件模型,在该事件模型中,定义了新的添加、移除事件监听的方法,同时还增加了事件流,这个时候,就有了捕获阶段与冒泡阶段。

在2级DOM事件模型中,这样为元素添加、移除事件监听:

var btn = document.getElementById('.btn');
btn.addEventListener(‘click’, showMessage1, false); // 为btn绑定监听事件,并添加一个回调函数
btn.addEventListener(‘click’, showMessage2, false); // 为btn的点击事件再添加一个监听回调
 
btn.removeEventListener(‘click’, showMessage2, false); // 清除btn上的第二个监听回调

这种添加、移除监听的方式,就可以为一个事件同时绑定多个监听回调,触发顺序取决于定义的顺序,我们还可以根据回调函数名来移除指定的监听回调函数。


3级DOM

增加了一些事件,提升交互能力。


事件模型:

0级DOM、2级DOM定义了不同的事件模型,事件模型主要是对绑定监听回调做定义,其次还有事件流问题。


还有一点,就是后一个DOM分级的出现,并不会废弃前一个DOM分级,而是一个不断扩展的过程,就比如2级DOM出现了,但0级DOM为事件绑定、移除监听的方式依旧可以正常使用。

【JS “DOM 分级” 与 “DOM 事件模型”】https://blog.csdn.net/qq_44647809/article/details/120688232

编辑于 2022-03-07 08:59:12 回复(0)
事件模型:当事件触发时,监听该事件的所有触发事件都会被调用。
发表于 2022-06-28 15:38:05 回复(0)
dom2用addeventlistener来监听,事件分三个阶段而dom0使用on
编辑于 2020-03-13 15:34:37 回复(0)
①DOM规范共有DOM1~4四个版本,“DOM0”是为了纪念没有DOM规范的日子; ②DOM0通过on来绑定事件; ③DOM2通过addEventListener来绑定事件,DOM2有捕获、目标、冒泡三个事件阶段。
发表于 2019-10-22 16:35:20 回复(0)