jQuery動態添加的元素綁定事件處理函數

有一段時間沒用jquery瞭,今天又碰到這個問題。當時是知道有livejquery可以解決。但是我並不喜歡為瞭這個而另外加載一個。我當時的處理方法是在添加的時候手工綁定事件處理函數。不過新版的jquery已經添加瞭這個功能。我們已經不需要為此煩惱瞭。

參考:http://api.jquery.com/live/

以前我們定義事件,比如為元素定義單擊事件是這樣寫的:
$('input').click(function () {

 

//處理代碼

 

});
復制代碼

$('.clickme').bind('click', function() {

  // Bound handler called.

});
復制代碼
但是這隻能是對已經加載好的元素定義事件,那些後來添加插入的元素則需要另行綁定。即使你使用jquery的clone函數,它並不能將事件也復制(到目前為止我還不清楚它是為什麼這樣定義,是沒法復制還是刻意這麼處理,以防止出現某些異常,這還有待去分析一下jquery的源代碼)。

現在,使用live你可以輕松搞定,

$('.clickme').live('click', function() { // Live handler called. });這樣,你即使在後面動態插入的元素,也會被綁定事件,$('body').append('<p class="clickme">Another target</p>');

摘自 如果有一天…

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。