3.事件对象
*****执行某一行为时,不仅执行了绑定方法,而且浏览器还会默认的给这个方法传递一个参数,这个参数就是—>event,事件对象。
事件对象的特点:
1??对象数据类型,包含有很多的属性名和属性值,用来记录行为的相关信息;
2??MouseEvent——UIEvent——Event——Object 原型
3??MouseEvent记录的是页面中唯一一个鼠标每次触发的相关信息,和到底在哪个元素上触发没有关系。
4.事件对象的兼容性问题
- 事件对象本身的兼容性问题:e=e||window.event;
- e.type:当前行为类型,兼容;
- e.clientX/Y:距离可视窗口左上角x,y值,兼容;
- e.pageX/Y:距离body(第一屏)左上角x,y值,IE678不兼容;
e.pageX=(document.documentElement.scrollLeft||document.body.scrollLeft)+ e.clientX;
- e.target:事件源,当前行为触发元素,存储的就是那个元素IE678不兼容,e.target=e.target||e.srcElement;
- e.preventDafault:阻止浏览器的默认行为,IE678不兼容;e.preventDafault?e.preventDafault:e.returnvalue=false;
- e.stopPropagation:阻止事件冒泡传播,IE678不兼容;e.stopPropagation?e.stopPropagation:e.cancelBubble=true;
5.事件的传播机制
- 捕获:从外向内依次查找元素,event capturing;
- 目标:当前述事件源本省的操作;
- 冒泡:从内到外依次触发的相关行为,event bubbing;