前几天有小伙伴问过我一个问题,为什么有DOM 0级事件以及DOM2级事件,但是却没有DOM1级事件呢?那我们今天就来说一说DOM的级别问题。
同时推荐伙伴们可以看看尚学堂有关JavaScript BOM的文章:《细说javascript BOM》
一.DOM0级事件
0级DOM分为两种
- 行内事件:在标签中写事件
- 元素.on事件名=函数
1.行内 <input type="button" id="btn" value="按钮" οnclick="alert('上海尚学堂,你值得拥有!')"> |
2.元素.on事件名=函数 document.getElementById("btn").onclick = function () { alert('上海尚学堂,你值得拥有!'); } |
二.DOM1级问题
为什么没有1级DOM?
DOM级别1于1998年10月1日成为W3C推荐标准。1级DOM标准中并没有定义事件相关的内容,所以没有所谓的1级DOM事件模型。在2级DOM中除了定义了一些DOM相关的操作之外还定义了一个事件模型 ,这个标准下的事件模型就是我们所说的2级DOM事件模型
三.DOM2级事件
只有一个:监听方法,有两个方法用来添加和移除事件处理程序:addEventListener()和removeEventListener()。
它们都有三个参数:第一个参数是事件名(如click);
第二个参数是事件处理程序函数;
第三个参数如果是true则表示在捕获阶段调用,为false表示在冒泡阶段调用。
- addEventListener():可以为元素添加多个事件处理程序,触发时会按照添加顺序依次调用。
- removeEventListener():不能移除匿名添加的函数。
document.getElementById("btn").addEventListener("click", function(){alert('上海尚学堂,你值得拥有!')}, false); |
对事件的不同级别的具体区别,还是需要大家了解清楚的,那么下次我们再来聊一聊事件的不同执行阶段问题.