JS--事件对象

作者: FeRookie | 来源:发表于2017-03-23 23:23 被阅读0次

在触发DOM上的某个事件时,会产生一个事件对象event,这个对象中包含着所有与事件有关的信息。

DOM中的事件对象

兼容DOM的浏览器会将一个event对象传入到事件处理程序中,无论指定事件处理程序时是DOM0级事件还是DOM2级事件,都会传入event对象。

var btn = document.getElementById('btn')
btn.onclick = function(event){
  console.log(event.type) //'click'
}

btn.addEventListener('click', function(event){
  console.log(event.type)  // 'click'
},false)

event对象包含与创建它的特定的事件有关的属性和方法,触发的事件类类型不一样,可以使用的事件对象上的属性和方法也不一样。不过所有事件都会有一下列出的成员“

属性/方法 类型 读写 说明
bubbles boolean 只读 表明事件是否冒泡
cancleable boolean 只读 表明是否可以取消事件的默认行为
currentTarget Element 只读 表明事件处理程序当前正在处理事件的那个元素
defaultPrevented boolean 只读 为true表明调用了preventDefault()(DOM3级事件新增)
detail Integer 只读 表明与事件相关的细节信息
eventPhase Integer 只读 调用事件处理程序的阶段:1、捕获阶段;2、处于目标阶段;3、冒泡阶段
preventDefault() Function 只读 取消事件的默认行为,如果cancelable 为true,则可以使用该方法
stopImmediatePropagation() Function 只读 取消事件的进一步捕获或冒泡,同时阻止任何事件处理程序被调用(DOM3级新增)
stopPropagation() Function 只读 取消事件的进一步捕获或冒泡,如果bubbles为true的话可以使用这个方法
target Element 只读 事件的目标,currentTarge表示当前的事件阶段的目标
type String 只读 事件触发的类型
view AbstractView 只读 与事件有关联的抽象视图,等同于发生事件的window对象

在事件处理程序内部,对象this始终等同于currentTarget的值,而target则是包含事件的实际目标,如果将事件处理程序制定给了目标元素,则this,currentTarge,target包含的是相同的值。

注意:当事件处理程序执行完后,事件对象会被销毁。

  • IE中的事件对象
    在IE中访问事件对象的几种不同方式,取决于绑定事件处理程序的方式。在DOM0级方法添加事件处理程序时,event对象作为window对象的属性存在。
var btn = document.getElementById('btn')

btn.onclick = function() {
  var event  = window.event
  console.log(event.type)
}

如果事件处理程序是使用attachEvent()方法添加的没那么就会有一个event对象作为参数传到事件处理程序的函数参数列表中。

var btn = document.getElementById('btn')

btn.attachEvent('click', function(event){
  console.log(event.type)
}, false)

在IE的所有事件对象都会包含以下属性和方法:

属性/方法 类型 读写 说明
cancelBubble boolean 读写 默认值为false,但将其设置为true可以取消事件冒泡,和stopPropagation()一样
returnValue boolean 读写 默认为true,设置为false就可以取消事件的默认行为,和preventDefault()作用一样
scrElement Element 只读 事件目标,和target一样
type string 只读 表示触发的事件类型

相关文章

  • JS--事件对象

    在触发DOM上的某个事件时,会产生一个事件对象event,这个对象中包含着所有与事件有关的信息。 DOM中的事件对...

  • JS--对象

    JS 对象JavaScript的对象是一种无序的集合数据类型,它由若干键值对组成。JavaScript用一个{.....

  • JS--事件

    DOM0 事件和DOM2级在事件监听使用方式上有什么区别? attachEvent与addEventListene...

  • js-- date对象

    Date 日期对象,总是遇到点小问题,做个总结来个了断 js 的date对象,基本把常用的功能都封装好了,基本不需...

  • JS--事件(一)

    事件流 事件流描述的是从页面中接受事件的顺序,在IE中的事件流是事件冒泡,在Netscape的事件流是事件捕获流。...

  • 20-01-28JS基础1

    书写形式: 今天天气很好! 外部JS,在企业开发中用的较多...

  • JS--面向对象(一)

    面向对象的语言都有类的概念,通过类可以创建任意多个相同属性和方法的对象。 ECMA-262中把对象定义为:无序属性...

  • 再学js--变量对象

    当JavaScript代码执行一段可执行的代码时,会创建对应的执行上下文,对于每个执行上下文的创建阶段,都有三个重...

  • js--创建对象与对象继承

    创建对象 工厂模式:function createPerson(name, age, job){var o = n...

  • 再学JS--事件节流

    节流 节流:如果你持续触发事件,每隔一段时间,只执行一次事件 关于节流的实现,有两种主流的实现方式,一种是使用时间...

网友评论

    本文标题:JS--事件对象

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