Chinaunix首页 | 论坛 | 博客
  • 博客访问: 616861
  • 博文数量: 210
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 2062
  • 用 户 组: 普通用户
  • 注册时间: 2014-11-19 21:54
文章分类

全部博文(210)

文章存档

2020年(2)

2019年(18)

2018年(27)

2017年(5)

2016年(53)

2015年(88)

2014年(17)

分类: HTML5

2016-11-21 17:10:09

传统的方式:element.onclick = function(e){ // ... };
1.传统绑定的优点:
非常简单和稳定,可以确保它在你使用的不同浏览器中运作一致
处理事件时,this关键字引用的是当前元素,这很有帮组
2.传统绑定的 缺点:
传统方法只会在事件冒泡中运行,而非捕获和冒泡
一个元素一次只能绑定一个事件处理函数。新绑定的事件处理函数会覆盖旧的事件处理函数
事件对象参数(e)仅非IE浏览器可用

W3C方式:element.addEventListener('click', function(e){ // ... }, false);
1.W3C绑定的有点:
该方法同时支持事件处理的捕获和冒泡阶段。事件阶段取决于addEventListener最后的参数设置:false (冒泡) 或 true (捕获)。
在事件处理函数内部,this关键字引用当前元素。
事件对象总是可以通过处理函数的第一个参数(e)捕获。
可以为同一个元素绑定你所希望的多个事件,同时并不会覆盖先前绑定的事件


W3C绑定的缺点:
IE不支持,你必须使用IE的attachEvent函数替代。

IE方式:element.attachEvent('onclick', function(){ // ... });
1.IE绑定的优点:
可以为同一个元素绑定你所希望的多个事件,同时并不会覆盖先前绑定的事件。

2.IE绑定的缺点:
IE仅支持事件捕获的冒泡阶段
事件监听函数内的this关键字指向了window对象,而不是当前元素(IE的一个巨大缺点)
事件对象仅存在与window.event参数中
事件必须以ontype的形式命名,比如,onclick而非click
仅IE可用。你必须在非IE浏览器中使用W3C的addEventListener

阅读(798) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~