为什么点击事件处理程序在排序表后不起作用

时间:2015-05-31 18:18:48

标签: javascript jquery html datatables

我使用的是jQuery DataTables,我有一个使用foreach循环生成的表。在生成的每一行中,使用添加到data属性的不同数字创建了2个按钮。

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

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

在使用任何一个排序列时,我该怎么做才能阻止dataTable导致按钮什么都不做?

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

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

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

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

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

有关详细信息,请参阅jQuery DataTables – Why click event handler does not work