首頁 > web前端 > js教程 > 主體

jQuery ajax動態新增節點無法觸發點擊事件如何解決

小云云
發布: 2018-01-10 13:43:02
原創
2083 人瀏覽過

在寫ajax載入資料的時候發現,後面加入進來的demo節點元素,失去了先前的點擊事件,如何解決此問題呢?下面小編為大家帶來了jQuery ajax動態新增節點無法觸發點擊事件的解決方法,一起看看吧,希望能幫助大家。

在寫ajax載入資料的時候發現,後面加入進來的demo節點元素,失去了先前的點擊事件。為什麼點擊事件失效,我們該怎麼去解決呢?

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

解決jQuery ajax動態新增節點無法觸發事件問題的兩個解決方法,為了達到更好的演示效果,假設在某個頁面的body下有以下結構的程式碼:

 <ul id="demo">
  <li class="demo1">a1</li>
  <li class="demo1">a2</li>
  <li class="demo1">a3</li>
 </ul> 
 <script type="text/javascript">
 $("#demo").click(function(){
  $("#demo").append('<li class="demo1">aaa4</li>'); //动态像ul的末尾追加一个新元素
 });
 </script>
登入後複製

方法一:使用live:

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

實作如下:

$('.demo1').live('click', function(){
 alert('OK');
});
登入後複製

方法二:使用on:

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

$("#demo").on('click','.demol',function(){
 alert('OK')
});
登入後複製

透過上面的兩種方法,都可以解決jQuery ajax動態新增節點無法觸發點擊事件的問題。知道方法了,趕快的試試吧。

相關推薦:

JQuery 模擬點擊事件,自動觸發事件

##js模擬點擊事件

js動態新增點擊事件常見錯誤詳解

以上是jQuery ajax動態新增節點無法觸發點擊事件如何解決的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板