国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

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

2019-11-20 11:22:18
字體:
來源:轉載
供稿:網友

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

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

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

為了達到更好的演示效果,假設在某個頁面的body下有以下結構的代碼:

<p id="pLabel">新加一條</p><ul id="ulLabel"> <li class="liLabel">aaa1</li> <li class="liLabel">aaa2</li> <li class="liLabel">aaa3</li></ul><script type="text/javascript">$("#pLabel").click(function(){ $("#ulLabel").append('<li class="liLabel">aaaQ</li>'); //動態像ul的末尾追加一個新元素});</script>

方法一:使用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')});

現在大家可以嘗試嘗試,是不是問題已經得到解決了,希望這篇文章能夠真正的幫助大家。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 荃湾区| 香港| 固阳县| 英超| 芷江| 巴南区| 仁寿县| 新巴尔虎左旗| 安化县| 来安县| 武胜县| 青阳县| 廉江市| 沁源县| 东港市| 新民市| 凤阳县| 丰台区| 蚌埠市| 梨树县| 昂仁县| 新丰县| 桐乡市| 涞水县| 黔江区| 保亭| 咸宁市| 乌兰浩特市| 措美县| 宜春市| 平罗县| 陈巴尔虎旗| 东乡县| 邵武市| 辉县市| 祁门县| 麻江县| 五大连池市| 介休市| 佛山市| 伊川县|