事件基础(1)

综上,一个事件的传递过程包含三个阶段,分别称为:

捕获阶段,目标阶段,冒泡阶段

首先我们先将两种事件绑定的原生js表达式写出来

attachEvent(); //IE(7,8只支持这个函数);

DOM.attachEvent('onclick',function(e){});

IE低版本(IE8以前版本)只支持 目标阶段,冒泡阶段,所以只有两个参数

addEventListener(); //w3c   IE9+(包括IE9)

DOM.addEVentListener('click',function(){},false);

//true表示该元素在事件的“捕获阶段”(由外往内传递时)响应事件;

//false表示该元素在事件的“冒泡阶段”(由内向外传递时)响应事件。

addEventListener细说

DOM.addEventListener('click',funciton(e){

//这两个参数IE8不支持

e.target;     //触发事件的元素

e.currentTarget;//事件绑定的元素

this代表绑定事件的元素,也就是上面的DOM

},false);

attachEvent细说

DOM.attachEvent('onclick',function(){

var e = event;(只有IE下event是挂载到window中的)

e.srcELement //作用和上面的target一样

this指向的是window;

})

兼容性添加(让ie和w3c添加事件所有细节全面一致,包括this,e.target,e.currentTarget):

var addEvent = (function () {

if (document.addEventListener) {

return function (el, type, fn) {

el.addEventListener(type, fn, false);

};

}

else {

return function (el, type, fn) {

el.attachEvent('on' + type, function () {

var e = window.event;      //对IE8进行全面兼容

e.target = window.event.srcElement;

e.currentTarget = el;

return fn.call(el, e);

});

}

}

})();

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 声明:本文来源于http://www.webzsky.com/?p=731我只是在这里作为自己的学习笔记整理一下(...
    angryyan阅读 11,935评论 1 6
  • 事件流: 事件流:页面接收事件的顺序。 IE定义的:事件冒泡流(由最具体的元素依次传播到DOM树的最上层的Docu...
    xiaoguo16阅读 3,709评论 0 0
  • 什么是事件: 我们可以简单的把事件理解为浏览器的感知系统。比如说:他可以感觉到用户是否点击(click)了页面、鼠...
    张松1366阅读 11,777评论 1 6
  • 事件绑定 要想让 JavaScript 对用户的操作作出响应,首先要对 DOM 元素绑定事件处理函数。所谓事件处理...
    gtt21阅读 1,137评论 0 0
  • 以前给她说,害怕被别人喜欢。所以要酷酷的。她说我,神经病。 现在身边闹哄哄的,持续得和不同的人互动着。也不怕被别人...
    杜烦人阅读 1,053评论 0 0