JS的原生事件
javascript原生的事件包括事件流、处理函数、事件对象等。而在兼容性也有问题。
1事件流
事件流是ie和Netscape提出来的,但是两个公司提出的事件流确实刚好相反的。ie是事件冒泡,Netscape是事件捕获。
ie会从触发事件的元素一直往上冒泡直到document元素。
Netscape则是从document元素开始往下传播一直到触发事件的元素
2事件处理函数
这里有3种方法:
DOM元素绑定事件,
HTML标签内绑定事件,
事件监听绑定事件
我就不一一介绍了。
3事件对象
在js中所有的事件对象都继承自Event。
在不同的浏览器中Event对象还是有区别的。
但是属性和方法还是公用的:
bubbles 是否冒泡
cancelable 是否可以取消默认行为
currentTarget 目前元素
target 目标元素
defaultPrevented 是否已被阻止默认行为
type 事件类型
eventPhase 事件流哪个阶段
detail 信息
trusted js创建的为false,浏览器创建为true
view 等同于window
preventDefault() 阻止默认行为
stopPropagation() 阻止冒泡和捕获
stopImmediatePropagation() 立即阻止冒泡和捕获
但是ie8又不同了,它的事件对象是这样的:
cancelBubble 是否取消冒泡
returnValue 返回值
srcElement 目标元素
type 事件类型
还有其他的一些事件,如:
load:页面、img图像、所有框架、嵌入内容加载完后在object元素触发。
unload:离开页面时触发
resize:调整浏览器窗口大小
scroll:滚动事件
focus:得到焦点触发
blur:失去焦点触发
鼠标事件:
click:点击
dblclick:双击
mousedown/mouseup:按下抬起
mouseenter:鼠标移入
mouseleave:鼠标移出
mouseover:鼠标经过
mousemove:鼠标在元素内移动
在DOM标准中还有这些
clientX、clientY:当前位置
detail 单击次数
ctrlKey
altKey
metaKey
shiftKey
pageX、pageY
screenX、screenY 等等。
学的不精,总结的不到位。还请见谅。