jquery如何在重新创建复选框输入后重新绑定单击事件
我有一个包含jquery数据表的页面,其中一列是复选框。jquery如何在重新创建复选框输入后重新绑定单击事件,jquery,Jquery,我有一个包含jquery数据表的页面,其中一列是复选框。 在document.ready上,我用一个click事件绑定那些复选框(由类标识) 现在,在对表数据进行修改之后,我通过清除表并重新填充行来刷新表 但是,现在复选框将丢失其单击事件 我知道我需要重新绑定click事件,但我无法确定代码必须去哪里 这是我重新填充表的函数 function RefreshBuyerAgentTable(tableId, urlData) { var selBuyerAgid = -1;
在document.ready上,我用一个click事件绑定那些复选框(由类标识) 现在,在对表数据进行修改之后,我通过清除表并重新填充行来刷新表 但是,现在复选框将丢失其单击事件 我知道我需要重新绑定click事件,但我无法确定代码必须去哪里 这是我重新填充表的函数
function RefreshBuyerAgentTable(tableId, urlData) {
var selBuyerAgid = -1;
var selBuyerAgname = '';
var oTbl = $(tableId).dataTable();
//var oSettings = oTbl.fnSettings();
oTbl.fnClearTable(this);
var sItems = JSON.parse(urlData);
for (var i = 0; i < sItems.length; i++) {
oTbl.fnAddData(["<input type='checkbox' id='chkBuyer_" + sItems[i].BuyerAgentId + "' class='buyeragentcheckboxes'/><img src='../../images/edit_24x24.png' style='cursor: pointer' onclick='EditBuyerAgent(" + sItems[i].BuyerAgentId + ")' />", sItems[i].BuyerAgentFullName, sItems[i].BuyerAgentCompanyName]);
if (sItems[i].BuyerAgentIsSelected){
selBuyerAgid = sItems[i].BuyerAgentId;
selBuyerAgname = sItems[i].BuyerAgentFullName;
}
}
使用委派的事件处理程序
$("#tblAgentInformationBuyerAgents").on("click", "tbody tr td .buyeragentcheckboxes", function(e) {
这样,在更新DOM时不会删除事件处理程序。我上面的示例假设,#tblAgentInformationBuyerAgents
始终存在于DOM中
您的问题是事件处理程序已“附加”到DOM元素,因此当您删除DOM元素时,事件处理程序也会消失。请在上使用代理版本的
,而不是单击。e、 g.。在(“单击”,“选择器转到此处”,function(){…
$("#tblAgentInformationBuyerAgents").on("click", "tbody tr td .buyeragentcheckboxes", function(e) {