Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jquery如何在重新创建复选框输入后重新绑定单击事件_Jquery - Fatal编程技术网

jquery如何在重新创建复选框输入后重新绑定单击事件

jquery如何在重新创建复选框输入后重新绑定单击事件,jquery,Jquery,我有一个包含jquery数据表的页面,其中一列是复选框。 在document.ready上,我用一个click事件绑定那些复选框(由类标识) 现在,在对表数据进行修改之后,我通过清除表并重新填充行来刷新表 但是,现在复选框将丢失其单击事件 我知道我需要重新绑定click事件,但我无法确定代码必须去哪里 这是我重新填充表的函数 function RefreshBuyerAgentTable(tableId, urlData) { var selBuyerAgid = -1;

我有一个包含jquery数据表的页面,其中一列是复选框。
在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) {