【前端】Ajax动态加载的Dom元素,无法使用click点击事件

文章讲述了在前端使用Ajax从后端获取数据并动态渲染表格后,遇到动态生成的`.aBtn`按钮点击事件失效的问题。解决方案是利用jQuery的on方法在父级元素上绑定事件,确保动态添加的元素也能响应事件。
摘要由CSDN通过智能技术生成

现象

前端
通过Ajax将后端返回的数据获取后,进行动态显示数据。

 $("#page").XXX({
	ajax: {
              callback: "callBackData",
              on: true,
              dataType: 'json',
              url: contextPath + '/xxx.do',
              param: param
          }
});

function callBackData(ret) {
	var $tr = ...
	$("#id_table").append($tr);
	if (ret.code > 0) {
		var html = "";
                    var datas= ret.datas;
                    for (var i = 0; i < datas.length; i++) {
                    var trobj = records[i];
                        html += '<tr>' +
                            '    <td >' + trobj .aa+ '</td>' +
                            '    <td >' + trobj .bb+ '</td>' +
                            '    <td><a href="javascript:void(0)" class="aBtn" >点击</a></td>' +

                            '  </tr>'
                    }
                     $("#id_table").append(html);
	}
}
//失效
$(".aBtn").click(function(){
             console.log('OK')
});

此时.aBtn 按钮失效,是因为加载页面时,Dom元素还未生成。

处理方法

其中一种方法
使用on:
可以通过on方法绑定事件,可以绑定到它的父级或者body中,实现如下:

$("#id_table").on('click','.aBtn',function(){
 alert('OK')
});
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值