为什么在对表进行排序后单击事件处理程序不起作用?

Why click event handler doesn't work after sorting the table

本文关键字:事件处理 单击 程序 不起作用 排序 为什么      更新时间:2023-09-26

我使用jQuery数据表,我有一个使用foreach循环生成的表。在生成的每一行中,用data属性添加不同的数字制作2个按钮。

在页面加载之后,dataTables启动并呈现表。我有一个onClick处理程序响应按钮时,点击。

但是,当我对datatable能够执行的表列进行排序时,按钮根本不响应onClick处理程序。

当使用排序列时,我能做些什么来防止数据表导致按钮不做任何事情?

不要使用$('.button').click,因为这些按钮在排序后会重新创建,而是使用on jquery事件

$(document).on('click', '.button',function(){
  //your code
});

您需要使用委托事件处理程序,因为您的按钮很可能在重绘表时被重新创建。

下面是一个示例代码,您需要更新以匹配您的结构:

$('#example tbody').on('click', '.button', function(e){
   // your code
});

example替换为表的ID属性,并将.button替换为按钮的适当CSS选择器。

参见jQuery数据表-为什么点击事件处理程序不工作获取更多信息。