事件
- 事件,就是文档或浏览器窗口中发生的一些特定的交互瞬间
- 事件处理程序指的是当 HTML 中发生某些事件时所调用的方法
- 在 jQuery 中,大多数 DOM 事件都有一个等效的 jQuery 方法。
- JavaScript 与 HTML 之间的交互是通过事件实现的。
- 对于 Web 应用来说,有下面这些代表性的事件:单击事件、鼠标移入移出事件、键盘按下/弹起事件等等
- 事件就是用户与浏览器的交互行为
- 事件通常与函数结合使用,函数不会在事件发生前被执行
- 当事件的响应函数被触发时,浏览器每次都会将一个事件对象作为实参传递传递进响应函数,在事件对象中封装了当前事件相关的一切信息,比如:鼠标的坐标 键盘那个按键被按下,鼠标滚轮滚动的方向
-在IE8中,响应函数被触发时,浏览器不会传递事件对象,在IE8及以下的浏览器中,是将事件对象作为window对象的属性保存的
冒泡(Bubble)-
所谓冒泡指的就是事件的向上传导,当后代元素上的事件被触发时,其祖先元素的相同事件也会被触发
-
在开发中大部分情况冒泡都是有用的,如果不希望冒泡发生可以通过事件对象取消冒泡 event.cancelBubble=true
绑定
为每一个a标签绑定一个单击响应事件,这种操作比较麻烦,而且这种操作只能为已有的a标签绑定单击事件,新添加的超链接需要重新绑定。
绑定一次事件,即可应用到多个元素上,即使元素是后添加的,可以尝试将其绑定给元素的共同的祖先元素
事件的委派 -
指将事件统一绑定给元素共同的祖先元素,这样当后代元素上的事件触发时,会一直冒泡到祖先元素,从而通过祖先元素的响应函数来处理事件
-
事件委派是利用冒泡,通过委派可以减少事件绑定的次数,提高程序的性能
事件对象的属性target:返回触发此事件的元素(事件的目标节点)
使用 对象.事件=函数形式绑定事件
它只能同时为同一个元素绑定同一事件一次,不能绑定多次,如果绑定多次,后面的会覆盖掉前面的
事件传播
1.捕获阶段- 在捕获阶段时从最外层的祖先元素,向目标元素进行事件的捕获,但是默认此时不会触发事件
2.目标阶段 - 事件捕获到目标元素,捕获结束开始在目标元素上触发事件
3.冒泡阶段 - 事件从目标元素向他的祖先元素传递,依次触发祖先元素上的事件
- 在捕获阶段时从最外层的祖先元素,向目标元素进行事件的捕获,但是默认此时不会触发事件
-
如果希望在捕获阶段就触发事件,可以将addEventListener()的第三个参数设置为true
一般情况下不会在捕获阶段触发事件,所以这个参数一般都是false -
IE8及以下的浏览器中没有捕获阶段
-