浏览器事件模型
1.DOM第0级事件模型事件处理程序通过把函数实例的引用指派到DOM元素的属性而声明的。
if(!event) event=window.event;
var target =(event.target) ? event.target: event.srcElement;
从目标元素沿着DOM树冒泡
由于第0级事件模型的特性,无法为每个元素注册一个事件的多个处理程序
所以引发了DOM第2级事件模型。
element.addEventListener(eventType,Listener,useCapture)
useCapture 事件传播
事件被触发,事件首先从DOM树的根向下传播到目标元素(捕获阶段),然后从目标元素向上传播到DOM树的根(冒泡阶段)
useCapture true 捕获阶段处理 false 冒泡阶段处理,一般使用false,因为IE不支持捕获阶段处理
IE使用attachEvent(eventName,handler)而不是addEventListener
JQuery事件模型
1.利用jQuery绑定事件处理程序bind(eventType,data,Listener)
简化了一些特定事件的绑定写法
eventTypeName(listener)
1.blur 2.focus 3.mousedown 4.resize
5.change 6.keydown 7.mousemove 8.scroll
9.click 10.keypress 11.mouseout 12.select
13.dblclick 14.keyup 15.mouseover 16.submit
17.error 18.load 19.mouseup 20.unload
unbind
altKey,ctrlKey,metaKey,shiftKey 标志相应的key是否被按下
data bind函数是否传入了值
pageX pageY 鼠标相对于页面原点的坐标
screenX screenY 相对于屏幕原点的坐标
target 哪个元素 type:click等等
stopPropagation阻止DOM树向上传播
trigger(eventType)
同理,简化写法eventName()
6.其它事件相关命令
toggle(listenerOdd,listenerEven)hover(overListener,outListener)