美文网首页
事件基础(1)

事件基础(1)

作者: strong9527 | 来源:发表于2016-08-09 22:52 被阅读21次

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

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

    首先我们先将两种事件绑定的原生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);

    });

    }

    }

    })();

    相关文章

      网友评论

          本文标题:事件基础(1)

          本文链接:https://www.haomeiwen.com/subject/tvvdsttx.html