1. 程式人生 > 其它 >jQuery之on/off/one支援的處理程式

jQuery之on/off/one支援的處理程式

jQuery之on/off/one支援的處理程式

定義

在jQuery中,on/off/one的定義如下。

方法

描述

on()

向元素新增事件處理程式

off()

移除通過on()新增的事件處理程式

one()

向被選元素新增一個或多個事件處理程式。該處理程式只能被每個元素觸發一次

語法格式如下:

1 $(selector).on(event,childSelector,data,function)
2 $(selector).off(event,childSelector,data,function)
3 $(selector).one(event,childSelector,data,function
)

引數

描述

event

必需。規定要從被選元素新增的一個或多個事件或名稱空間。

由空格分隔多個事件值,也可以是陣列。必須是有效的事件。

childSelector

可選。規定只能新增到指定的子元素上的事件處理程式(且不是選擇器本身,比如已廢棄的 delegate() 方法)。

data

可選。規定傳遞到函式的額外資料。

function

可選。規定當事件發生時執行的函式。

這裡的event表示的是事件,那麼他們支援哪些事件呢?在此,我簡單標記一下。

方法

描述

blur()

新增/觸發失去焦點事件

change()

新增/觸發change事件

click()

新增/觸發click事件

focus()

新增/觸發獲取焦點事件

focusin()

當元素(或在其內的任意元素)獲得焦點時發生

focusout()

當元素(或在其內的任意元素)獲得失去時發生

keydown()

當鍵盤按下時執行事件

keypress()

當鍵盤按下後執行事件

keyup()

當鍵盤松開時執行事件

mousedown()

滑鼠按下時執行

mouseenter()

滑鼠進入時執行

mouseleave()

滑鼠離開時執行

mousemove()

滑鼠在指定元素移動時執行

mouseup()

滑鼠釋放時執行

mouseover()

當指標位於元素上方時觸發

mouseout()

滑鼠離開被選元素時觸發

ready()

元素載入後執行事件

resize()

對視窗進行調節時執行方法

scroll()

當滾動指定元素時,觸發該方法

select()

當textarea或文字型別的input元素的文字被選擇時觸發

submit()

表單提交時觸發

contextmenu()

滑鼠右擊元素時執行

注:與keypress事件相關的事件順序:

  1. keydown – 鍵按下的過程
  2. keypress – 鍵按下
  3. keyup -鍵鬆開

注:mouseenter/mouseleaver 和 mouseover/mouseout 的區別和聯絡

  • mouseenter/mouseleaver 和 mouseover/mouseout在滑鼠進入或離開被選元素時觸發。
  • mouseover當滑鼠進入被選元素或者任意子元素都會觸發,通常與mouseout配套使用。所以,被選元素如果內部包含多個子元素,滑鼠在元素內移動可能會觸發多次。
  • mouseenter事件只在滑鼠進入被選元素時觸發,通常與mouseleave配套使用。所以,進入一次備選元素,只會觸發一次。

總結

jQuery支援繫結大部分處理程式。不支援的包括以下處理程式:

  • 廢除或棄用的bind()、delegate()、die()、error()、live()、load()、toggle()、unbind()、undelegate()、unload()。
  • 用於繫結或移除處理程式的事件bind()、delegate()、die()、live()、load()、off()、on()、one()、unbind()、undelegate()、unload()。
  • 引數不一致的事件hover()、trigger()、triggerHandler()。
  • 其他:如$.proxy、$.holdReady()。

方法

描述

hover()

滑鼠懸停時,執行方法,等價於mouseenter + mouseleave

$.proxy

接受一個已有的函式,並返回特定上下文的新函式

trigger()

觸發被選定元素指定的事件以及事件的預設行為(例如提交表單)

triggerHandler()

觸發被選定元素的指定事件

$.holdReady()

暫停或恢復ready()事件執行

參考網址