jquery中動態新增的元素節點無法觸發事件解決辦法


  在使用jquery中動態新增的元素節點時會發現添加的事件是無法觸發的,我們下面就為各位來詳細的介紹此問題的解決辦法.

  比如做一個ajax讀取留言列表的時候,每條留言后面有個回復按鈕,class為“reply”,如果你用的是$(".reply").click(function(){ //do something... }),想必后面通過ajax加載進來的列表中的回復按鈕,點擊事件會失效。

  其實最簡單的方法就是直接在標簽中寫onclick="",但是這樣寫其實是有點low的,最好的方式還是通過給類名綁定一個click事件。

解決jquery中動態新增的元素節點無法觸發事件的問題有兩種解決方法,如下:

方法一:使用live

  live()函數會給被選的元素綁定上一個或者多個事件處理程序,並且規定當這些事件發生時運行的函數。通過live()函數適用於匹配選擇器的當前及未來的元素。比如,通過腳本動態創建的元素。

實現如下:

$('.liLabel').live('click', function(){
   alert('OK');
});

方法二:使用on

  可以通過on方法綁定事件,可以綁定到它的父級或者body中,實現如下:

$("#ulLabel").on('click','.liLabel',function(){
   alert('OK')
});
或者:
$("body").on('click','.liLabel',function(){
   alert('OK')
});

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM