DOM事件

Javascript与HTML之间的交互是通过事件来实现的。事件,就是文档或浏览器窗口中发 生的一些特定的交互瞬间。

比如:

点击一个DOM元素

键盘按下一个键
输入框输入内容
页面加载完成

事件流

事件流描述的是从页面中接收事件的顺序。

IE的事件流是事件冒泡流(event bubbling),即事件开始时由最具体的元素(文档中嵌套 层次最深的那个节点)接收,然后逐级向上传播到较为不具体的节点(文档)。

Netscape的事件流是事件捕获流(event capturing)。事件捕获的思想是不太具体的节点应该 更早接收到事件,而最具体的节点应该最后接收到事件。

DOM2级事件规定的事件流包括三个阶段:事件捕获阶段、处于目标阶段和事件冒泡阶段。

事件注册与触发

事件注册

取消事件注册

事件触发

浏览器兼容型(IE6/7/8)

事件注册与取消:attachEvent() / detachEvent()

这两个方法接受相同的2个参数:事件处理程序名称、事件处理程序函数

事件触发:fireEvent(e)
no capture: IE8及更早版本只支持事件冒泡,不支持事件捕获。

浏览器兼容型

事件对象

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

事件对象属性:

事件对象方法:

阻止事件传播

默认行为

Event.preventDefault() (W3C)

Event.returnValue=false (IE)

事件分类

Event

Window对象

Window对象上的Event事件包括:


Image对象

Image对象上的Event事件包括


UIEvent

MouseEvent

MouseEvent对象属性

MouseEvent顺序

从元素A上方移过:

-mousemove -> mouseover(A) -> mouseenter(A) ->mousemove(A) -> mouseout(A) -> mouseleave(A)
点击元素
-mousedown -> [mousemove] -> mouseup -> click
例子-拖拽div
HTML部分:

<div
 id=”
div1”
></div>

CSS部分:

JS部分代码:

WheelEvent-滚轮事件

WheelEvent对象属性

FocusEvent-焦点事件

FocusEvent属性

relatedTarget

InputEvent-输入事件

onpropertychange(IE)

KeyboardEvent-键盘事件

KeyboardEvent对象属性

事件代理

将事件注册到元素的父节点上。

事件代理也被称为“事件委托”。事件委托利用了事件冒泡,只指定一个事件处理程序,就 可以管理某一类型的所有事件。

results matching ""

    No results matching ""