DOM 事件

JS 与 HTML 之间的交互是通过事件来实现的。DOM 事件,就是文档或浏览器窗口中发生的一些特定交互瞬间,可使用侦听器(或处理程序)预定事件,以便事件发生时执行相应的代码。


事件的注册与触发

[1] 事件注册    eventTarget.addEventListener(type,listener[,useCapture])

该方法接受 3 个参数:事件类型 ?!事件处理函数 ?!否捕获(可选,true / false)

[ 取消事件注册 ]    eventTarget.removeEventListener(type,listener[,useCapter])


[ 事件委托?!事件默认处理冒泡过程。由于事件会在冒泡阶段向上传播到父节点,因此可以把子节点的监听函数定义在父节点上,由父节点的监听函数统一处理多个子元素的事件。这种方法就叫做事件代理或事件委托。

事件代理应用事件目标的 target 和 srcElement 属性完成,利用事件代理,可以提高性能及降低代码复杂度。


[2] 事件触发   eventTarget.dispatchEvent(type)

~ 的方式有很多种,如,点击一个元素、点击一个按钮 ... 这里主要介绍如何使用代码进行触发,即事件模拟?!

简单来说,事件模拟,是用来触发自定义的事件函数的,而不是触发浏览器默认行为。

[ 事件对象 ?!事件被触发时,会调用事件处理函数并传入一些信息,这些信息代表了当前事件的状态,即事件对象。换句话说,当调用事件处理函数时,引擎会传入一个对象,对象就含有了事件的状态和信息。


低版本浏览器的兼容( IE8 - )

  • 事件注册与取消 attchEvent detachEvent
  • 事件触发 fireEvent(e)
  • no captureIE低版本中没有捕获过程)