javascript原生的事件包括事件流、處理函數(shù)、事件對象等。而在兼容性也有問題。
1事件流
事件流是ie和Netscape提出來的,但是兩個公司提出的事件流確實剛好相反的。ie是事件冒泡,Netscape是事件捕獲。
ie會從觸發(fā)事件的元素一直往上冒泡直到document元素。
Netscape則是從document元素開始往下傳播一直到觸發(fā)事件的元素
2事件處理函數(shù)
這里有3種方法:
DOM元素綁定事件,
HTML標(biāo)簽內(nèi)綁定事件,
事件監(jiān)聽綁定事件
我就不一一介紹了。
3事件對象
在js中所有的事件對象都繼承自Event。
在不同的瀏覽器中Event對象還是有區(qū)別的。
但是屬性和方法還是公用的:
bubbles 是否冒泡
cancelable 是否可以取消默認(rèn)行為
currentTarget 目前元素
target 目標(biāo)元素
defaultPrevented 是否已被阻止默認(rèn)行為
type 事件類型
eventPhase 事件流哪個階段
detail 信息
trusted js創(chuàng)建的為false,瀏覽器創(chuàng)建為true
view 等同于window
preventDefault() 阻止默認(rèn)行為
stopPropagation() 阻止冒泡和捕獲
stopImmediatePropagation() 立即阻止冒泡和捕獲
但是ie8又不同了,它的事件對象是這樣的:
cancelBubble 是否取消冒泡
returnValue 返回值
srcElement 目標(biāo)元素
type 事件類型
還有其他的一些事件,如:
load:頁面、img圖像、所有框架、嵌入內(nèi)容加載完后在object元素觸發(fā)。
unload:離開頁面時觸發(fā)
resize:調(diào)整瀏覽器窗口大小
scroll:滾動事件
focus:得到焦點(diǎn)觸發(fā)
blur:失去焦點(diǎn)觸發(fā)
鼠標(biāo)事件:
click:點(diǎn)擊
dblclick:雙擊
mousedown/mouseup:按下抬起
mouseenter:鼠標(biāo)移入
mouseleave:鼠標(biāo)移出
mouseover:鼠標(biāo)經(jīng)過
mousemove:鼠標(biāo)在元素內(nèi)移動
在DOM標(biāo)準(zhǔn)中還有這些
clientX、clientY:當(dāng)前位置
detail 單擊次數(shù)
ctrlKey
altKey
metaKey
shiftKey
pageX、pageY
screenX、screenY 等等。
學(xué)的不精,總結(jié)的不到位。還請見諒。