DOM Level 0事件与DOM Level 2事件之间有什么区别?

时间:2011-04-12 23:07:45

标签: javascript javascript-events

DOM Level 0事件与DOM Level 2事件之间有什么区别?我问,因为我被告知Firefox和IE以不同的顺序称呼它们,我之前从未听过这些术语。

2 个答案:

答案 0 :(得分:8)

DOM Level 0事件基于在DOM元素上使用元素属性或命名事件的概念,例如:

<input type="button" onclick="clickMe();" />

或者

input.onclick = function() { ... };

使用DOM Level 2,我们现在可以通过addEventListenerremoveEventListener等方式获得更加标准化的事件和订阅管理方法。

您可以在此处阅读更多内容here

直到IE8,Microsoft才在其浏览器中添加了对W3C事件管理标准的支持。不知道他们被叫什么顺序......

答案 1 :(得分:1)

除了先前的答案完全正确地提到的问题,其中集中在使用事件处理程序调用函数或执行其他JavaScript的类型(我的意思是使用内联注册模型和传统注册模型与使用addEventListener(。 ..),removeEventListener(...)或dispatchEvent(...))以及向this duplicated question添加其他信息,DOM Level 0与DOM Level 2事件模型之间还有另一个很大的区别。

通过DOM Level 2事件模型,可能只是特定对象(例如via:document.getElementById(“elementId”)),具有特定事件(click或load之一......)注册了任意数量的事件处理函数。例如:

<!DOCTYPE html>
<html>
    <body>
        <button id="btn">Test it</button>
        <script>
            document.getElementById("btn").addEventListener("click", function(){alert("first alert");});
            document.getElementById("btn").addEventListener("click", function(){alert("second alert");});
        </script>

    </body>
</html>

这是DOM Level 0中的一个问题,它通过other solutions处理。