Javascript学习笔记#7(事件-----下)
-
事件流
事件流描述的是从页面中接收事件的顺序。 事件流是描述的从页面接受事件的顺序,当几个都具有事件的元 素层叠在一起的时候,那么你点击其中一个元素,并不是只有当前被 点击的元素会触发事件,而层叠在你点击范围的所有元素都会触发事 件。事件流包括两种模式:
1. 冒泡:子集元素先触发,父级元素后触发;
2. 捕获:子集元素后出发,父级元素先触发。 -
事件兼容
(1)事件绑定 addEventListener 用于注册事件处理程序,IE 中为 attachEvent 我们为 什么讲 addEventListener 而不讲 attachEvent 呢?一来 attachEvent 比较简 单,二来 addEventListener 才是 DOM 中的标准内容。
语法
element.addEventListener(event, function, useCapture);
通过 addEventListener(添加点击事件监听器)形式的绑定事件不 会互相抵消,从而实现一个按钮控制多个事件。
(2)获取事件对象 事件对象封装了事件发生的详细信息,尤其是鼠标、键盘事件。 如鼠标事件发生的位置、键盘事件的键盘键等。 IE 中的事件对象: IE 中的事件对象是一个隐式可用的全局对象: event,它是 window 对象的一个属性。 标准 DOM 的事件对象: 在标准 DOM 浏览器检测发生了某个事件时,将自动创建一个 Event 对象,并隐式地将该对象作为事件处理函数的第一个参数传入。
(3)阻止默认 w3c 的方法是 e.preventDefault(), IE 则是使用 e.returnValue = false; preventDefault 它是事件对象(Event)的一个方法,作用是取消 一个目标元素的默认行为。既然是说默认行为,当然是元素必须有默 认行为才能被取消,如果元素本身就没有默认行为,调用当然就无效 了。什么元素有默认行为呢?如链接,提交按钮<input type=” submit”>等。当 Event 对象的 cancelable 为 false 时,表示没有 默认行为,这时即使有默认行为,调用 preventDefault 也是不会起 作用的。
以上