jquery綁定事件 bind和on的用法與區(qū)別分析
本文實(shí)例講述了jquery綁定事件 bind和on的用法與區(qū)別。分享給大家供大家參考,具體如下:
bind和on都是給元素綁定事件用的,其最大的區(qū)別就是事件冒泡
事件冒泡也是委托事件的原型,事件委托就是子類(lèi)的事情委托給父類(lèi)的去做
最直觀的區(qū)別就是on綁定比bind綁定多一個(gè)參數(shù)'childSelector'
語(yǔ)法
$(selector).on(event,childSelector,data,function)
參數(shù) | 描述 |
---|---|
event | 必需。規(guī)定要從被選元素移除的一個(gè)或多個(gè)事件或命名空間。 由空格分隔多個(gè)事件值,也可以是數(shù)組。必須是有效的事件。 |
childSelector | 可選。規(guī)定只能添加到指定的子元素上的事件處理程序(且不是選擇器本身,比如已廢棄的 delegate() 方法)。 |
data | 可選。規(guī)定傳遞到函數(shù)的額外數(shù)據(jù)。 |
function | 可選。規(guī)定當(dāng)事件發(fā)生時(shí)運(yùn)行的函數(shù)。 |
$(selector).bind(event,data,function,map)
參數(shù) | 描述 |
---|---|
event | 必需。規(guī)定添加到元素的一個(gè)或多個(gè)事件。 由空格分隔多個(gè)事件值。必須是有效的事件。 |
data | 可選。規(guī)定傳遞到函數(shù)的額外數(shù)據(jù)。 |
function | 必需。規(guī)定當(dāng)事件發(fā)生時(shí)運(yùn)行的函數(shù)。 |
map | 規(guī)定事件映射 ({event:function, event:function, ...}),包含要添加到元素的一個(gè)或多個(gè)事件,以及當(dāng)事件發(fā)生時(shí)運(yùn)行的函數(shù)。 |
- bind只能給符合條件的元素本身添加事件
- on可以將子元素的事件委托給父元素進(jìn)行處理,而且可以給動(dòng)態(tài)添加的元素加上綁定事件
也就是對(duì)于新添加的元素如果是on綁定,符合條件的新元素也會(huì)綁定事件,
如果是bind則不影響新元素
比如下例:
<ul> <li>第一個(gè)子元素<li/> <li>第二個(gè)子元素<li/> <li>第三個(gè)子元素<li/> </ul>
我們想給所有l(wèi)i添加click事件,可以用on:
$('ul').on('click','li', function () { console.log($(this).text()); });
也可以用bind:
$('ul li').bind('click', function () { console.log($(this).text()); });
有什么區(qū)別呢?
第一用on綁定實(shí)際上是委托給了父級(jí)ul,也就是只給 一個(gè)元素綁定了事件
第二個(gè)是用選擇器選擇了ul下的所有l(wèi)i元素 依次綁定了事件
假如有很多很多子元素區(qū)別就很大了, bind會(huì)嚴(yán)重影響性能!
假如這時(shí)候新添一個(gè)li:
$('ul').append('<li>第四個(gè)子元素<li>');
- 如果是on綁定則這個(gè)li也會(huì)有點(diǎn)擊事件
- 如果是bind則沒(méi)有
感興趣的朋友可以使用在線HTML/CSS/JavaScript代碼運(yùn)行工具:http://tools.jb51.net/code/HtmlJsRun測(cè)試上述代碼運(yùn)行效果。
更多關(guān)于jQuery相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《jQuery頁(yè)面元素操作技巧匯總》、《jQuery常見(jiàn)事件用法與技巧總結(jié)》、《jQuery常用插件及用法總結(jié)》、《jQuery擴(kuò)展技巧總結(jié)》及《jquery選擇器用法總結(jié)》
希望本文所述對(duì)大家jQuery程序設(shè)計(jì)有所幫助。
- JQuery綁定事件四種實(shí)現(xiàn)方法解析
- jQuery事件綁定和解綁、事件冒泡與阻止事件冒泡及彈出應(yīng)用示例
- jquery 給動(dòng)態(tài)生成的標(biāo)簽綁定事件的幾種方法總結(jié)
- jQuery使用bind函數(shù)實(shí)現(xiàn)綁定多個(gè)事件的方法
- jQuery綁定事件方法及區(qū)別(bind,click,on,live,one)
- jQuery中的on與bind綁定事件區(qū)別實(shí)例詳解
- 淺談jquery之on()綁定事件和off()解除綁定事件
- jQuery on()方法綁定動(dòng)態(tài)元素的點(diǎn)擊事件無(wú)響應(yīng)的解決辦法
- 深入理解JQuery循環(huán)綁定事件
- jquery html動(dòng)態(tài)添加的元素綁定事件詳解
- jquery事件綁定方法介紹
相關(guān)文章
jQuery.uploadify文件上傳組件實(shí)例講解
這篇文章主要介紹了jQuery.uploadify文件上傳組件實(shí)例講解的相關(guān)資料,本文圖文并茂介紹的非常詳細(xì),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-09-09判斷對(duì)象是否Window的實(shí)現(xiàn)代碼
判斷對(duì)象是否Window的實(shí)現(xiàn)代碼,需要的朋友可以參考下。2012-01-01jquery 實(shí)現(xiàn)兩Select 標(biāo)簽項(xiàng)互調(diào)示例代碼
這篇文章主要與大家分享了jquery實(shí)現(xiàn)兩Select標(biāo)簽項(xiàng)互調(diào)的具體實(shí)現(xiàn),比較簡(jiǎn)單,比較實(shí)用2014-09-09jQuery 瀑布流 絕對(duì)定位布局(二)(延遲AJAX加載圖片)
瀑布流-絕對(duì)定位布局,與浮動(dòng)布局的區(qū)別在于布局不一樣,AJAX不一樣2012-05-05jquery異步循環(huán)獲取功能實(shí)現(xiàn)代碼
頁(yè)面html的repeater控件中有一個(gè)span,需要根據(jù)指定ID異步獲取相關(guān)信息。2010-09-09jQuery實(shí)現(xiàn)選中彈出窗口選擇框內(nèi)容后賦值給文本框的方法
這篇文章主要介紹了jQuery實(shí)現(xiàn)選中彈出窗口選擇框內(nèi)容后賦值給文本框的方法,涉及jQuery響應(yīng)鼠標(biāo)事件動(dòng)態(tài)操作頁(yè)面元素屬性的相關(guān)技巧,需要的朋友可以參考下2015-11-11