1.what
*一個事件可以寫多個方法,從左往右執行。
2.發展史
初期由各瀏覽器廠商自己定義;後來出現了DOM標準。
3.事件流——由於頁面上不止一個元素可以響應相同的事件,爲了控制響應順序,纔在ie4.0和Netscape4.0中引入事件流。
3.1:時間冒泡——事件從事件發生的目標最內部開始觸發,向上觸發到最外部(document)。
3.2:事件捕獲——從最外層對象(window(需要程序員指定)|document)到最裏層對象的順序觸發。
*DOM先發生捕獲後發生冒泡;起止都在document。
4.代碼實現
4.1:實現方法
4.2:綁定
4.2.1:綁定方式
4.2.2.1:傳統的
*綁定到事件屬性時只需函數名,加括號則直接執行。
*事件處理程序在事件源之後。
*所有標籤都加載完後才調用onload方法。
4.2.2.1:現代的
4.2.2.1.1(IE):attachEvent("事件屬性",方法)<——>detachEvent("事件屬性",方法)
4.2.2.1.2(DOM):addEventListener("事件屬性去on",方法,true) <——>removeEventListener("事件屬性去on",方法,true)——TRUE表示在捕獲階段觸發
4.2.2.1.3:特點
*現代方法可以爲一個事件添加多個處理函數。
*兼容性—— if(!window.event){dom}else{ie};if(document.addEventListener){dom}else if(document.attachEvent){ie}
5.event對象——包含觸發事件的對象、事件發生時鼠標和鍵盤的信息;有事件發生時存在,沒有事件時銷燬;dom規定只能用作參數;
5.1:屬性(IE——DOM)?????????
5.1.1:事件類型的判斷 【type】
5.1.2:獲取鍵盤的值(keydown/keyup事件)【keyCode】
5.1.3:檢測shift,alt,ctrl是否按下【shiftKey,altKey,ctrlKey】
5.1.4:獲取客戶區(docment)座標【clientX,clientY】
5.1.5:獲得屏幕座標【screenX,screenY】
5.1.6:獲取目標(事件中心對象)【srcElement——target】
5.1.7:獲取字符碼【keyCode——charCode】
5.1.8:
5.2:方法(IE——DOM)
5.2.1:阻止事件的默認行爲【returnValue=false——preventDefault()】
5.2.2:中止事件傳播【cancelBubble=true——stopPropagation()】
5.2.
5.2.
6.事件類型
6.1:鼠標事件
*事件類型(type):click,dblclick,mouseover,mouseout,mousedown,mouseup,mousemove
*時間發生順序
6.2:鍵盤事件
*事件類型:keydown,keypress,keyup
*事件發生順序:
6.3:html事件
*事件類型:load,unload,abort,error,select,change,submit,reset,resize,scroll,focus,blur
*事件順序