DOM0和DOM2事件的应用和区别详细对比

Posted Mzs-Qsy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DOM0和DOM2事件的应用和区别详细对比相关的知识,希望对你有一定的参考价值。

1.触发次数

零级事件只能注册一次,如果注册多次,后面的会覆盖前面的

 btn.onclick = function () {

      alert(1)
    }
    btn.onclick = function () {

      alert(2)
    }

二级时间可以给同一个事件注册多次,而且会依次触发

btn.addEventListener(\'click\', function () {

      alert(\'我被点了1\')
    })

    btn.addEventListener(\'click\', function () {

      alert(\'我被点了2\')
    })

2.现象原因

DOM0级事件绑定了DOM元素的事件函数,后面的函数会覆盖之前的

DOM2级事件通过事件监听绑定了DOM元素的事件处理函数

3.解绑方式

DOM0级事件,绑定的DOM元素.onclick = null

DOM2级事件,绑定的DOM元素.removeEventListener IE8版本之上

DOM2级事件,绑定的DOM元素.detachEvent(\'on\'+事件名,回调函数)

4.原理解析

4.1DOM0

赋值了一个函数,就相当于绑定了一个方法,当我们赋值一个函数,此时浏览器会把DOM元素和赋值的的函数建立关联,以及建立DOM元素的行为监听,当某一行为被用户触发,浏览器会把赋值的函数执行;

4.2DOM2

addEventListener/attachEvent方法都是在eventTarget这个内置类的原型上定义的,我们调用的时候,首先要通过原型链找到这个方法,然后执行完成事件绑定的效果
浏览器会给当前元素的某个事件行为开辟一个事件池(事件队列)【浏览器有一个统一的事件池,每个元素绑定的行为都放在这里,通过相关标志区分】,当我们通过 addEventListener/attachEvent进行事件绑定的时候,会把绑定的方法放在事件池中;
当元素的某一行为被触发,浏览器回到对应事件池中,把当前放在事件池的所有方法按序依次执行

以上是关于DOM0和DOM2事件的应用和区别详细对比的主要内容,如果未能解决你的问题,请参考以下文章

Dom0级 Dom2级区别

488 DOM0和DOM2事件绑定的原理使用区别

事件处理程序DOM0,DOM2,IE的区别总结

js DOM0级事件和DOM2级事件

JavaScript 学习-30.HTML DOM0级事件和 DOM2级事件

DOM0级事件处理和DOM2级事件处理