attachEvent(a)、detachEvent(b)和addEventListener(c)、removeEventListener(d)的区别和使用注意

1、使用d移除c时(只能通过d来移除),c的第二个参数不能是匿名函数

如:btn.addEventListener('click',function(){},false),是不能被移除的。

  btn.addEventListener('click',handler,false)可以通过btn.removeEventListener('click',handler,false)移除,参数3如果是false可以省略,true要保存一致

  a也要b来移除,参数也要一样

  DOM0级,直接用btn.onclick = null; 来移除

2、c和d中,参数3代表捕获阶段,true事件捕获(captrue),false事件冒泡(bubbling)。 a、b不用,因为都是冒泡,所以只要两个参数

3、a、b参数1 onclick,c、d参数1 click

4、a、b中的函数运行环境是window,this指向window(event.srcElement指向当前对象)。c、d包括DOM0都是所属元素的作用域中。

5、a、b中添加多个事件,执行顺序是后添加先执行,c、d是先添加先执行,DOM0不支持多事件。

6、阻止默认事件a设置returnValue属性,(window.event.returnValue=false)。c用event.preventDefault()方法

a、b在IE11中也不被支持,另外也可以直接在HTML中添加事件,JS和HTML耦合太强,基本被舍弃了

posted @ 2016-08-17 16:32  大大的宝剑  阅读(147)  评论(0编辑  收藏  举报