jQuery動態(tài)添加的元素綁定事件處理函數(shù)代碼
更新時(shí)間:2011年08月02日 22:30:05 作者:
有一段時(shí)間沒用jquery了,今天又碰到這個(gè)問題。當(dāng)時(shí)是知道有l(wèi)ivejquery可以解決。但是我并不喜歡為了這個(gè)而另外加載一個(gè)。
我當(dāng)時(shí)的處理方法是在添加的時(shí)候手工綁定事件處理函數(shù)。不過新版的jquery已經(jīng)添加了這個(gè)功能。我們已經(jīng)不需要為此煩惱了。
參考:http://api.jquery.com/live/
以前我們定義事件,比如為元素定義單擊事件是這樣寫的:
$('input').click(function () {
//處理代碼
});
或
$('.clickme').bind('click', function() {
// Bound handler called.
});
但是這只能是對已經(jīng)加載好的元素定義事件,那些后來添加插入的元素則需要另行綁定。即使你使用jquery的clone函數(shù),它并不能將事件也復(fù)制(到目前為止我還不清楚它是為什么這樣定義,是沒法復(fù)制還是刻意這么處理,以防止出現(xiàn)某些異常,這還有待去分析一下jquery的源代碼)。
現(xiàn)在,使用live你可以輕松搞定,
$('.clickme').live('click', function() { // Live handler called. });這樣,你即使在后面動態(tài)插入的元素,也會被綁定事件,$('body').append('<div class="clickme">Another target</div>');
參考:http://api.jquery.com/live/
以前我們定義事件,比如為元素定義單擊事件是這樣寫的:
復(fù)制代碼 代碼如下:
$('input').click(function () {
//處理代碼
});
或
復(fù)制代碼 代碼如下:
$('.clickme').bind('click', function() {
// Bound handler called.
});
但是這只能是對已經(jīng)加載好的元素定義事件,那些后來添加插入的元素則需要另行綁定。即使你使用jquery的clone函數(shù),它并不能將事件也復(fù)制(到目前為止我還不清楚它是為什么這樣定義,是沒法復(fù)制還是刻意這么處理,以防止出現(xiàn)某些異常,這還有待去分析一下jquery的源代碼)。
現(xiàn)在,使用live你可以輕松搞定,
$('.clickme').live('click', function() { // Live handler called. });這樣,你即使在后面動態(tài)插入的元素,也會被綁定事件,$('body').append('<div class="clickme">Another target</div>');
您可能感興趣的文章:
相關(guān)文章
jQuery防止click雙擊多次提交及傳遞動態(tài)函數(shù)或多參數(shù)
這篇文章主要介紹了jQuery防止click雙擊多次提交及傳遞動態(tài)函數(shù)方法,需要的朋友可以參考下2014-04-04
jQuery數(shù)據(jù)緩存功能的實(shí)現(xiàn)思路及簡單模擬
jQuery緩存系統(tǒng)不僅運(yùn)用于DOM元素,動畫、事件等都有用到這個(gè)緩存系統(tǒng)2013-05-05
jquery+php實(shí)現(xiàn)搜索框自動提示
百度上有個(gè)很使用的功能,就是用戶在搜索的時(shí)候會自動提示相關(guān)搜索條件以供選擇,非常人性化的設(shè)計(jì),我們?nèi)绾螌⒋斯δ芊诺阶约旱捻?xiàng)目中呢,經(jīng)過一番研究,終于實(shí)現(xiàn)了此功能,分享給大家。2014-11-11
jQuery構(gòu)造函數(shù)init參數(shù)分析續(xù)
其實(shí)樓主的F和jQuery.fn.init是相等的; 實(shí)現(xiàn)功能是和jq一樣的, 只是jq的把構(gòu)造函數(shù)放進(jìn)原型;如果非要說原因,個(gè)人理解jq這樣寫整體結(jié)構(gòu)清晰,先是入口構(gòu)造函數(shù),緊跟著是原型部分(原型里面init是初始化),但是不好理解;乍一看確實(shí)挺繞, 我也是看了好久才明白怎么回事2015-05-05
Jquery實(shí)現(xiàn)點(diǎn)擊切換圖片并隱藏顯示內(nèi)容(2種方法實(shí)現(xiàn))
電腦屏幕大小是固定的,那么如何在有限的空間放更多的內(nèi)容呢,jquery的tab切換式瀏覽卻可以解決這個(gè)問題2013-04-04

