學(xué)習(xí)筆記四|事件處理

事件類型

傳統(tǒng)事件類型

  1. 表單事件
  • 當(dāng)提交表單和重置表單時(shí),<form>元素會(huì)分別觸發(fā)submit和reset事件。
  • 當(dāng)用戶和類按鈕表單元素(包括單選按鈕和復(fù)選框)交互時(shí),會(huì)發(fā)生click事件。
  • 當(dāng)用戶通過輸入文字、選擇選項(xiàng)或選擇復(fù)選框來改變相應(yīng)表單元素的狀態(tài)時(shí),會(huì)觸發(fā)change事件。
  1. window事件
  • unload事件:當(dāng)用戶離開當(dāng)前文檔轉(zhuǎn)向其他文檔時(shí)會(huì)觸發(fā)它。
  • load事件:當(dāng)文檔和其所有外部資源完全加載并顯示給用戶時(shí)就會(huì)觸發(fā)它。
  • onerror:當(dāng)JavaScript出錯(cuò)時(shí)觸發(fā)。
  • 當(dāng)用戶調(diào)整瀏覽器窗口大小或滾動(dòng)它時(shí)會(huì)觸發(fā)resize和scroll事件。
  1. 鼠標(biāo)事件
  • 移動(dòng)鼠標(biāo),觸發(fā)mousemove事件。
  • 按下鼠標(biāo),觸發(fā)mousedown事件。
  • 釋放鼠標(biāo),觸發(fā)mouseup事件。
  • 在mousedown和mouseup事件隊(duì)列之后,會(huì)觸發(fā)click事件。
  • 雙擊鼠標(biāo),跟在第二個(gè)click事件之后的是dblclick事件。
  • 右擊鼠標(biāo),在顯示菜單之前,先觸發(fā)contextmenu事件,取消這個(gè)事件就可以阻止菜單的顯示。
  • 移動(dòng)鼠標(biāo)懸停在新元素上時(shí),觸發(fā)mouseover事件。
  • 移出鼠標(biāo),觸發(fā)mouseout事件。
  1. 鍵盤事件
  • 按下按鍵,觸發(fā)keydown。
  • 釋放按鍵,觸發(fā)keyup。
  • keydown事件產(chǎn)生可打印字符時(shí),在keydown和keyup之間會(huì)觸發(fā)keypress,其事件對象指定產(chǎn)生的字符而非按下的鍵。

DOM事件

wheel事件的處理程序接收到的事件對象除了所有普通鼠標(biāo)事件屬性,還有deltaX、deltaY和deltaZ屬性來報(bào)告三個(gè)不同的鼠標(biāo)滾軸。

觸摸屏和移動(dòng)設(shè)備事件

  • Safari產(chǎn)生的手勢事件用于兩個(gè)手指的縮放和旋轉(zhuǎn)手勢。當(dāng)手勢開始時(shí)生成gesturestart事件,而手勢結(jié)束時(shí)生成gestureend事件。
  • 兩個(gè)事件之間是跟蹤手勢過程的gesturechange事件隊(duì)列。
  • 事件對象有數(shù)字屬性scale和rotation。
    • scale:兩個(gè)手指之間當(dāng)前距離和初始距離的比值。“捏緊”手勢的scale值小于1.0,“撐開”手勢的scale值大于1.0.
    • rotation:指從事件開始手指旋轉(zhuǎn)的角度,以度為單位,順時(shí)針旋轉(zhuǎn)為正值。
  • 手指觸摸屏幕觸發(fā)touchstart事件,手指移動(dòng)觸發(fā)touchmove事件,手指離開屏幕觸發(fā)touchend事件。
  • 觸摸事件傳遞的事件對象有一個(gè)changedTouches屬性,該屬性是一個(gè)類數(shù)組對象,其每個(gè)元素都描述觸摸的位置。
  • 豎屏轉(zhuǎn)到橫屏模式時(shí)會(huì)在window對象上觸發(fā)orientationchanged事件。
    • 移動(dòng)版的Safari中,window對象的orientation屬性可以給出當(dāng)前方位,其值是0、 90、 180或-90 。

注冊事件處理程序

設(shè)置JavaScript對象屬性為事件處理程序

按照約定,事件處理程序?qū)傩缘拿钟伞皁n”后面跟著事件組成。(略)

設(shè)置HTML標(biāo)簽屬性為事件處理程序

(略)

addEventListener()

  • 該函數(shù)接受三個(gè)參數(shù)
  • 第一個(gè)是要注冊處理程序的事件類型,是字符串。
  • 第二個(gè)是當(dāng)指定類型的事件發(fā)生時(shí)應(yīng)該調(diào)用的函數(shù)。
  • 第三個(gè)是布爾值。傳遞true時(shí),函數(shù)將注冊為捕獲事件處理程序,并在事件不同的調(diào)度階段調(diào)用。一般傳遞false

removeEventListener()方法

  • 該函數(shù)同樣有三個(gè)參數(shù)

attachEvent()

  • attachEvent()和detachEvent()方法的工作原理同上述兩個(gè)類似,但有如下例外:
  • 因IE事件模型不支持事件捕獲,只有兩個(gè)參數(shù):事件類型和處理程序函數(shù)。
  • 第一個(gè)參數(shù)要帶有“on”前綴。
  • attachEvent()允許相同的事件處理程序函數(shù)注冊多次。

鼠標(biāo)事件

鼠標(biāo)事件

鼠標(biāo)滾輪事件

可以通過取消mousewheel事件來阻止使用鼠標(biāo)滾動(dòng)時(shí)的默認(rèn)操作。

  • 傳遞給mousewheel處理程序的事件對象有wheelDelta屬性,其指定用戶滾動(dòng)滾輪有多遠(yuǎn)。
  • 遠(yuǎn)離用戶方向的一次鼠標(biāo)滾輪“單擊”的wheelDelta值通常為120.
  • 接近用戶方向的為-120.
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 總結(jié): 鼠標(biāo)事件 1.click與dbclick事件$ele.click()$ele.click(handler(...
    阿r阿r閱讀 1,724評論 2 10
  • 第1章 鼠標(biāo)事件 1-1 jQuery鼠標(biāo)事件之click與dbclick事件 用交互操作中,最簡單直接的操作就是...
    mo默22閱讀 1,351評論 0 6
  • (續(xù)jQuery基礎(chǔ)(1)) 第5章 DOM節(jié)點(diǎn)的復(fù)制與替換 (1)DOM拷貝clone() 克隆節(jié)點(diǎn)是DOM的常...
    凜0_0閱讀 1,520評論 0 8
  • 事件流 IE和Netscape開發(fā)團(tuán)隊(duì)提出了完全相反的兩種事件流的概念,事件冒泡流和事件捕獲流。 事件冒泡 事件由...
    exialym閱讀 1,057評論 0 9
  • 開發(fā)中的很多開源項(xiàng)目可以通過Pod導(dǎo)入自己的項(xiàng)目中,過程其實(shí)很簡單,網(wǎng)上的博客說的天花亂墜的,簡單描述一下過程,希...
    FlyElephant閱讀 985評論 0 1

友情鏈接更多精彩內(nèi)容