事件

2017-07-11  本文已影响0人  刘晓洋

1事件对象包含哪些信息: e

     *      e.clientX: 当前鼠标点击位置距离(浏览器)左上角的x轴坐标
     *      e.clientY: 当前鼠标点击位置距离(浏览器)左上角的y轴坐标
     *      e.pageX :  当前鼠标点击位置距离(页面body)左上角的x轴坐标
     *      e.pageY :  当前鼠标点击位置距离(页面body)左上角的y轴坐标
     *      ps: e.pageX和e.pageY在ie6-8中是不存在的
     *      e.pageX = e.clientX + (document.documentElement.scrollLeft||document.body.scrollLeft);
     *      e.type : 事件类型  点击事件:'click' 没有'on'
     *      e.preventDefault()  阻止默认行为
     *      e.returnValue = false; ie6-8阻止默认行为
     *      e.target 事件源: 真正触发事件的那个元素,比如:给body绑定一个事件。那么点击任何一个body内的后代元素都会触发body的click事件。而       e.target就是保存的就是真正点击的元素
     *      e.srcElement 在ie6-8中的事件源   window.event.target
     *      e.target = e.target || e.srcElement
     *      e.stopPropagation() 阻止事件传播
     *      e.cancelBubble = true; 在ie6-8中阻止事件冒泡传播
     *      冒泡传播 : 从子元素传播到祖先元素

2常用事件

鼠标事件
onclick onmouseover onmouseout onmouseenter onmouseleave ondbclick...
系统事件
onload onscroll onresize...
表单事件
onfocus onblur
键盘事件
onkeydown onkeyup onkeypress...

3事件包含两种

4事件流:

第一种:事件流包含3阶段:1)捕获阶段 2)事件源 3)冒泡阶段
第二种:事件流包含2阶段:1)捕获阶段 2)冒泡阶段

5事件委托:

当一个容器中的n多个元素,都要发生某个行为的时候,我们可以把这个行为委托给他们共同的父级(父容器);然后通过事件源做不同的区分;
事件委托->是对事件冒泡的典型运用;

6onmouseover和onmouseout:

问题:如果里面有子元素的话;会发生冒泡的问题,无法通过阻止冒泡来解决
其他解决措施:
1)onmosueenter 和 onmouseleave
2)用关联元素来解决:如果是关联元素,不做任何操作,如果不是关联元素,才写代码块;
oncontextmenu 阻止鼠标右键的
e.pageX=(document.documentElement.scrollLeft||document.body.scrollLeft)+ e.clientX;
e.pageY=(document.documentElement.scrollTop||document.body.scrollTop)+ e.clientY;

7拖拽思路

IE事件库的问题:

上一篇 下一篇

猜你喜欢

热点阅读