JavaScript基础之事件绑定与事件对象篇

  • 事件绑定和普通事件的区别

    普通事件绑定多个方法,方法会覆盖,只会执行最后绑定的方法;
    事件绑定addEvenetListener不会被覆盖,并且可以捕获事件的触发阶段,也能使用removeEventListener来取消事件绑定,但是不兼容低版本浏览器
    在IE中事件绑定和取消使用的是attachEventdetachEvent,并且事件中的this指的是widow,并非元素的本身

  • IE和DOM事件流的区别

    事件流:指的是页面中接收事件的顺序
    而IE团队提出的事件流顺序与Netscape团队提出的顺序完全相反
    IE事件流指的是事件冒泡流,所以IE8以下的版本只支持事件冒泡;
    Netscape团队指的是事件捕获流

    最后DOM2级事件规定:事件流包含3个阶段:捕获阶段,目标阶段,冒泡阶段;

  • 事件对象,DOM事件对象与IE事件对象
    在DOM上发生某个事件的时候,就会产生一个时间对象event,这个对象中包含所有与事件有关的信息,包括产生事件元素的信息、事件类型等等;所有的浏览器都支持时间对象,但是支持的方式不同
    DOM事件对象: 事件函数中的第一个参数;
    IE事件对象:并不是函数中的第一个参数,是window下面的一个属性:window.event
    事件对象下面包含它的特定的事件有关的属性和方法;
    var ev = ev || window.event;
    常用的属性有:
    ev.bubbles : 是否是冒泡
    ev.currentTarfet : 事件绑定的那个元素
    ev.type :事件名称
    ev.target || ev.srcElement(IE) : 事件触发的目标元素


*常用的方法有*
ev.preventDefault() || ev.returnValue(IE)    :  取消事件默认行为,比如右击鼠标会有对话框,但是只有在cabcelable为true的事件才能使用该方法
ev.stopPropagation () || ev.cancelBubble(IE)   : 切断进程,即取消下一步的捕获或者冒泡

猜你喜欢

转载自blog.csdn.net/connie_0217/article/details/80282292