事件

事件流:

DOM0级事件流分为事件捕获和事件冒泡

 1冒泡:从内到外,从子到父

 2捕获:从父到子,从外到内

DOM2级事件流:事件捕获阶段、处于目标阶段和事件冒泡阶段。融合了DOM0

1事件捕获阶段(找):从外向内遍历DOM树 document->html->body->outer  只是找到对象,并不执行事件

2找到目标处于目标:事件触发目标第二阶段和第三阶段都是有事件处理程序发生

3.事件冒泡:从里向外

事件处理程序:

原生三种:

DOM0级:两种;

DOM2级:一种(但是DOM2级得考虑兼容性写法)

0级DOM分为2个:一是在标签内写onclick事件;二是在JS写onlicke=function(){}函数

1)

2)document.getElementById("myButton").onclick = function () {    alert('thanks');}

1级DOM--(为什么没有1级DOM)

DOM级别1于1998年10月1日成为W3C推荐标准。1级DOM标准中并没有定义事件相关的内容,所以没有所谓的1级DOM事件模型。在2级DOM中除了定义了一些DOM相关的操作之外还定义了一个事件模型 ,这个标准下的事件模型就是我们所说的2级DOM事件模型 

 2级DOM

优点:可以删除事件,可以为元素添加多个事件处理程序

只有一个:监听方法,有两个方法用来添加和移除事件处理程序:addEventListener()和removeEventListener()。

它们都有三个参数:

第一个参数是事件名(如click);第二个参数是事件处理程序函数;第三个参数如果是true则表示在捕获阶段调用,为false表示在冒泡阶段调用。    

addEventListener():可以为元素添加多个事件处理程序,触发时会按照添加顺序依次调用。

removeEventListener():不能移除匿名添加的函数。

//IE添加事件:document.getElementById("myTest").attachEvent("onclick", function(){alert(1)});

//IE删除事件:btn.detachEvent('onclick' ,function(){})

//其他浏览器添加事件:document.getElementById("myTest").addEventListener("click", function(){alert(1)}, false);

//其他浏览器删除事件:btn.removeEventListener("click", fn, false);

你可能感兴趣的:(事件)