美文网首页
JS中的事件机制(下)

JS中的事件机制(下)

作者: 一枚靠脸吃饭的程序员 | 来源:发表于2018-03-12 16:57 被阅读0次

上文介绍了事件流和事件类型,本文介绍事件对象和事件代理

事件对象

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

DOM中的事件对象

兼容DOM的浏览器将一个event对象传入到事件处理程序中。无论指定的事件使用什么方法,DOM 0 级和 DOM 2级,都会传入event对象

<input onclick="alert(event.type)"/>
<input onclick = "handleClick(event)"/>
<script>
  //HTML事件,html中参数必须为event
  function handleClick(e){
    console.log(e.type)
  }
  let btn = document.getElementById("myBtn")
  // DOM 0 级事件
  btn.onclick = function(e){
  console.log(e.type)
  }
  btn.addEventListener("click", function(e){
    console.log(e.type)
  },false)
</script>
属性/方法 类型 读/写 说明
bubbles Boolean 只读 表明事件是否冒泡
cancelable boolean 只读 表明是否可以取消事件的默认行为
currentTarget Element 只读 表明事件处理程序当前处理的那个程序
defaultPrevented boolean 只读 为true表示事件已经调用过preventDefault
details Interger 只读 与事件相关的细节信息
eventPhrase Interger 只读 调用事件处理程序的阶段,1表示捕获,2表示目标阶段,3表示冒泡
preventDefault() Function 只读 取消事件的默认行为
stopImmediatePropagation() Function 只读 取消事件的进一步冒泡,同时阻止任何事件处理程序被调用
stopPropagation() Function 只读 取消事件的进一步冒泡
target Element 只读 事件的目标DOM
trusted Boolean 只读 true表示是浏览器生成的
type String 只读 被触发的事件类型
view AbstractView 只读 与事件关联的抽象视图

HTML原生事件,DOM 0 级事件,DOM 2 级事件都可以获取到event对象。
Event对象成员

属性/方法 类型 读/写 说明
bubbles Boolean 只读 表明事件是否冒泡
cancelable boolean 只读 表明是否可以取消事件的默认行为
currentTarget Element 只读 表明事件处理程序当前处理的那个程序
defaultPrevented boolean 只读 为true表示事件已经调用过preventDefault
details Interger 只读 与事件相关的细节信息
eventPhrase Interger 只读 调用事件处理程序的阶段,1表示捕获,2表示目标阶段,3表示冒泡
preventDefault() Function 只读 取消事件的默认行为
stopImmediatePropagation() Function 只读 取消事件的进一步冒泡,同时阻止任何事件处理程序被调用
stopPropagation() Function 只读 取消事件的进一步冒泡
target Element 只读 事件的目标DOM
trusted Boolean 只读 true表示是浏览器生成的
type String 只读 被触发的事件类型
view AbstractView 只读 与事件关联的抽象视图

只有在事件处理程序执行期间,event对象才会存在, 执行完会销毁

IE中的事件对象

在使用DOM 0 级方法添加事件处理函数时,event对象作为window对象的一个属性存在。

 btn.onclick = function(){
  var event = window.event;
  console.log(event.type) //"click"
}

如果用atttchEvent添加的,那么就会有一个event对象作为参数传入事件处理函数中

  btn.attachEvent("onclick", function(event){
    console.log(event.type)
  })

IE的event对象同样也包含于创建他的事件相关的属性和方法。
cancelBubble

相关文章

  • JS中的事件机制(下)

    上文介绍了事件流和事件类型,本文介绍事件对象和事件代理 事件对象 在触发DOM上的某个事件时,会产生一个事件对象e...

  • JavaScript的事件机制详解

    【js事件详解】js事件封装函数,js跨浏览器事件处理机制 一、事件流 事件流描述的是从页面中接受事件的顺序。IE...

  • 事件处理机制

    Node.js事件触发对象有哪些方法? 详细讲讲Node.js事件机制是怎样的? Node.js事件机制和Java...

  • js事件深入学习

    JavaScript的事件机制包含,事件绑定、事件监听、事件委托(事件代理)等 js中的事件流 ① .冒泡:当下级...

  • JS中的事件机制

    DOM事件操作(监听和触发),都定义在EventTarget接口,Element节点,document节点和win...

  • js中的事件机制

    一、为什么JavaScript是单线程? JavaScript语言的一大特点就是单线程,也就是说,同一个时间只能做...

  • javascript 中的事件机制

    js之事件机制 1、事件初探 1.1 js事件的概述 JavaScript事件:JavaScript是基于事件驱动...

  • js事件循环

    js 是单线程的, js 的异步事件就是依赖于事件循环机制 事件循环 首先,我们来解释下事件循环是个什么东西: 就...

  • js事件机制

    一、js事件机制三个阶段:事件捕获、事件目标处理函数、事件冒泡 js中事件执行的整个过程称之为事件流,分为三个阶段...

  • 20、jQuery 事件机制

    20、jQuery 事件机制 原生js事件与jQuery事件: (1)用原生的js给div注册事件 原生js注册相...

网友评论

      本文标题:JS中的事件机制(下)

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