jQuery事件綁定.on()簡要概述及應(yīng)用
前幾天在看《jquery基礎(chǔ)教程》,看到事件委托的時候,關(guān)于live()方法講的不是很詳細,就去搜了一下關(guān)于live()和delegate()的。
然后在一處看到live()已經(jīng)被移除了,囧,然后去看了最新的jq源碼,果然被移除了,現(xiàn)在是1.9.1版本,不知道live()是在之前哪個版本被移除的,慚愧啊,之前都沒留意。
看源碼發(fā)現(xiàn)bind()和delegate()都是由on()實現(xiàn)的。on()的描述如下:
.on( events [, selector ] [, data ], handler(eventObject) )
一個簡單的事件綁定如 $('button').on('click',function(){}); 與bind()無二樣。
在需要為較多的元素綁定事件的時候,優(yōu)先考慮事件委托,可以帶來性能上的好處。比如:

如上圖,將click事件綁定在document對象上,頁面上任何元素發(fā)生的click事件都冒泡到document對象上得到處理。
注意到.on()的描述中第二個可選參數(shù):selector。如下圖,添加了第二個參數(shù),選擇符button:

結(jié)果:
當事件冒泡到document對象時,檢測事件的target,如果與傳入的選擇符(這里是button)匹配,就觸發(fā)事件,否則不觸發(fā)。
注意.on()也可以接收一個對象參數(shù),該對象的屬性是事件類型,屬性值為事件處理函數(shù)。下面是官方文檔的一個例子:

最后有一點,原先的live()方法,處理函數(shù)是默認綁定在document對象上不能變的,如果DOM嵌套結(jié)構(gòu)很深,事件冒泡通過大量祖先元素會導致較大的性能損失。而使用.on()方法,事件只會綁定到$()函數(shù)的選擇符表達式匹配的元素上(上面我的例子中,為了簡單綁定到了document),因此可以精確地定位到頁面中的一部分,而事件冒泡的開銷也可以減少。delegate()與on()同理,畢竟是用on()實現(xiàn)的:

- 關(guān)于jQuery新的事件綁定機制on()的使用技巧
- jQuery事件綁定和委托實例
- jQuery事件綁定on()、bind()與delegate() 方法詳解
- jQuery文本框(input textare)事件綁定方法教程
- jQuery實現(xiàn)按鈕只點擊一次后就取消點擊事件綁定的方法
- 解析jQuery的三種bind/One/Live事件綁定使用方法
- jquery 新建的元素事件綁定問題解決方案
- jQuery事件綁定與解除綁定實現(xiàn)方法
- 淺談jQuery事件綁定原理
- JQuery中DOM事件綁定用法詳解
- jQuery事件綁定用法詳解(附bind和live的區(qū)別)
- jQuery實現(xiàn)的事件綁定功能基本示例
相關(guān)文章
巧用jquery解決下拉菜單被Div遮擋的相關(guān)問題
本篇文章主要是對巧用jquery解決下拉菜單被Div遮擋的相關(guān)問題進行了介紹,需要的朋友可以過來參考下,希望對大家有所幫助2014-02-02
原生Aajax 和jQuery Ajax 寫法個人總結(jié)
AJAX:即“Asynchronous Javascript And XML”(異步JavaScript和XML),是指一種創(chuàng)建交互式網(wǎng)頁應(yīng)用的網(wǎng)頁開發(fā)技術(shù)。本文重點給大家介紹原生Aajax 和jQuery Ajax 個人總結(jié),一起看看吧2017-03-03
設(shè)置jQueryUI DatePicker默認語言為中文
本文主要介紹jQueryUI DatePicker設(shè)置中文的方法,需要的朋友可以參考下。2016-06-06
jquery插件orbit.js實現(xiàn)圖片折疊輪換特效
Orbit是一個設(shè)計良好并且容易使用的jQuery圖片滑動幻燈片插件,它除了支持圖片滾動切換展示外,還支持針對內(nèi)容的滾動。插件的定制性相當高,它提供了多個參數(shù)的設(shè)置,通過設(shè)置你可以將它打造成完全符合你要求的樣式。2015-04-04
實例解析jQuery中如何取消后續(xù)執(zhí)行內(nèi)容
本文主要介紹了jQuery中取消后續(xù)執(zhí)行內(nèi)容的實例,代碼通俗易懂。需要的朋友來看下吧2016-12-12
jquery.bgiframe.js在IE9下提示INVALID_CHARACTER_ERR錯誤
今天測試偶然發(fā)現(xiàn)jquery.bgiframe.js在IE9環(huán)境下提示錯誤,于是很是好奇,想辦法知道究竟,于是搜索了一下,現(xiàn)在與大家分享希望可以幫助你們2013-01-01

