一、基本概念
1、事件:js可以侦测到的行为(用户在网页上执行某种操作)。
例如:页面加载(浏览器打开页面)、单击鼠标左键、鼠标进入某个区域、焦点事件、键盘事件。
2、事件处理程序:用户进行了某种操作以后,所运行的js程序段。
3、事件驱动式:当事件发生后采取执行相应的程序
4、事件流:事件发生时,会在发生事件的元素节点与DOM根节点之间按照特定的顺序进行传播,这个事件传播的过程就是事件流。
5、在web中对事件流的解决方案:
(1)事件捕获:网景公司(NetScape)----从window -->document -->htm l-->body -->事件发生节点(button)
(2)冒泡方式(事件冒泡):微软公司(Microsoft)----与事件捕获方式相反。
冒泡的前提:父元素也定义了相应的事件,当子元素与父元素有相同的事件时,子元素被触发父元素也会被触发
冒泡现象:
阻止事件冒泡:
分为传统浏览器和标准浏览器。
(3)W3C的事件流处理:
在事件发生阶段采用捕获方式(此时不处理),在事件处理阶段采用冒泡()
6、事件捕获的实现:
addEventListener(事件名,事件处理程序,事件处理方式)
参数1:事件名(click、change、load、mousedown...)
参数2:事件处理程序
参数3:事件的处理方式(true---表示采用事件捕获方式,false---表示采用事件冒泡方式),不写参数3时,默认按照事件冒泡方式。
onclick和attachEvent只能得到冒泡阶段。
二、js事件的绑定方式
(1)行内绑定式:
<标签名 事件名="事件处理程序"></标签名>
a、事件名作为标签的属性写在标签内。b、事件处理程序中的this的指向为window对象。
(2)动态绑定式: